首页 > 解决方案 > onCreateInputConnection 为 SearchView 返回 null

问题描述

我试图获取 SearchView 的输入连接。我想做这个 b/ci 有一个应用内键盘,每当用户想要搜索时,我都会显示我的应用内键盘。为此,我应该使用方法 onCreateInputConnection 获取 SearchView 的输入连接,但是该方法为 SearchView 返回 null,但它对 EditText 工作正常。另外,我使用导航栏上的 SearchView 作为菜单项。

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.options_menu_advanced_search, menu);
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
        CustomAmharicKeyboard customAmharicKeyboard = findViewById(R.id.keyboard);
        customAmharicKeyboard.setVisibility(View.VISIBLE);
        InputConnection inputConnection = searchView.onCreateInputConnection(new EditorInfo());
        customAmharicKeyboard.setInputConnection(inputConnection);
    }  

标签: androidnullpointerexceptionsearchviewinputconnection

解决方案


SearchView不扩展EditText实际上它是一个包含多个视图的布局。如果你想从中得到InputConnectionSearchView可以试试这个

 InputConnection inputConnection = searchView.findViewById(R.id.search_src_text).onCreateInputConnection(new EditorInfo());

推荐阅读