使用SearchView在搜索操作栏激活时显示软键盘

时间:2012-06-13 12:59:49

标签: android actionbarsherlock searchview

当我从ActionBar激活搜索时,我看到this question将焦点放在SearchView EditText上。但是,当它获得焦点时键盘不会出现。不应该,因为它只是一个普通的EditText? (这是一个正常的EditText吗?)在Android SDK 11级上可以看到此行为。(三星Galax Tab 7.7与Android股票。)

我现在有一个解决方法,它挂钩了我的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(冰淇淋)中的所有功能   三明治)。为了在所有平台上提供完整的操作栏API   以及在所有Android版本中统一样式的自定义   使用实现。

1 个答案:

答案 0 :(得分:0)

这应该有效:

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