8

当我从 ActionBar 激活搜索时,我看到这个问题将焦点集中在 SearchView EditText 上。但是,当它获得焦点时键盘不会出现。不应该吗,因为它只是一个普通的 EditText?(它是普通的 EditText 吗?)在 Android SDK 级别 11 上可以看到这种行为。(Samsung Galax Tab 7.7 with stock Android。)

目前,我有一个解决方法,它onOptionsItemSelected(MenuItem item)与我的 Activity 方法挂钩,显示键盘。

    @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;
    }

mInputManager的实例在哪里InputMethodManager

ActionBar 是使用 ActionBarSherlock 构建的,由于目标设备是 Android 3.x,这可能是导致症状的原因吗?根据 ActionBarSherlock 的常见问题解答

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

4

1 回答 1

0

这应该工作:

SearchView searchView = new SearchView(getContext());
searchView.setInputType(InputType.TYPE_CLASS_TEXT);
searchView.setBackgroundColor(Color.WHITE);
于 2012-12-18T17:59:47.090 回答