在搜索行动栏激活时显示软键盘,使用SearchView。

8
我看到这个问题在从ActionBar激活搜索时将焦点设置在SearchView EditText上。然而,当它获得焦点时,键盘并没有弹出来。作为一个普通的EditText,它不应该这样吗?(它是一个普通的EditText吗?)这种行为在Android SDK 11级上可见。(带有原始Android的三星Galax Tab 7.7。)
目前我有一个解决方法,它钩入我的Activity的onOptionsItemSelected(MenuItem item)方法,显示键盘。
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        boolean menuSelectionHandeled = super.onOptionsItemSelected(item);
        // menu_search is the id of the menu item in the ActionBar
        if (item.getItemId() == R.id.menu_search) {
               mInputManager.showSoftInput(null, InputMethodManager.SHOW_IMPLICIT);
        }
        return menuSelectionHandeled;
    }

其中mInputManagerInputMethodManager的一个实例。

ActionBar是使用ActionBarSherlock构建的,由于目标设备是Android 3.x,这可能是症状的原因。根据ActionBarSherlock的FAQ

Android 3.x(也称为Honeycomb)上的操作栏并未实现Android 4.x(Ice Cream Sandwich)中的所有功能。为了在所有平台上提供完整的操作栏API,并统一所有Android版本的样式,使用自定义实现。


不知道这是否真的重要,但当我的xml文件包含一个EditText时,就像ActionBarSherlock的示例文件一样(即:我无法使我的文本更改等回调起作用),但当我将其更改为SearchView并添加适当的回调时,它就开始按预期工作了。也许可以试试这个? - lfxgroove
另外,请查看https://dev59.com/3Ggu5IYBdhLWcg3w3qx7。 - lfxgroove
谢谢@Anton,这个问题让我想到没有自动显示键盘的方法。他有和我一样的解决办法。在我的XML中,我肯定使用了SearchView。谢谢。 - Diederik
请检查:https://dev59.com/rGct5IYBdhLWcg3wh91K#39635722 - Md Imran Choudhury
1个回答

0

这应该可以工作:

SearchView searchView = new SearchView(getContext());
searchView.setInputType(InputType.TYPE_CLASS_TEXT);
searchView.setBackgroundColor(Color.WHITE);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接