【问题标题】:onCreateInputConnection is returning null for SearchViewonCreateInputConnection 为 SearchView 返回 null
【发布时间】:2020-11-25 07:04:38
【问题描述】:

我试图获取 SearchView 的输入连接。我想做这个 b/c 我有一个应用内键盘,每当用户想要搜索时,我都会显示我的应用内键盘。为此,我应该使用方法 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);
    }  

【问题讨论】:

    标签: android nullpointerexception searchview inputconnection


    【解决方案1】:

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

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

    【讨论】:

    • 函数 searchView.findViewById 返回 null。
    猜你喜欢
    • 2013-08-26
    • 2015-11-08
    • 2012-12-15
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 2022-12-26
    • 2020-06-22
    • 2011-08-03
    相关资源
    最近更新 更多