2012-06-13 29 views
8

我看到this question集合在SearchView EditText上,当我从ActionBar激活搜索时。然而,键盘在获得焦点时不会弹出。不应该,因为它只是一个正常的EditText? (这是一个正常的EditText?)这种行为是在Android SDK级别11上看到的。(Samsung Galax Tab 7.7 with stock Android。)使用SearchView在搜索操作栏上激活时显示软键盘

我有一个解决方法,此刻挂钩了我的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的操作栏(又称蜂窝)不 实现所有的一个在Android的4.x版(冰淇淋三明治 )的功能。为了在所有平台 上提供完整的操作栏API,并统一所有Android版本的样式,使用自定义 实现。

+0

不知道这真的是问题,但我有一个问题,当我的XML文件中包含了'EditText'在从ActionBarSherlock(即示例文件,我不能不要让我的回调textchange等工作),但是当我改变了一个'SearchView',而是添加了适当的回调它刚刚开始按预期工作。也许给一个尝试? – lfxgroove

+0

另外,检查出http://stackoverflow.com/questions/11011091/how-can-i-focus-on-a-collapsible-action-view-edittext-item-in-the-action-bar-wh – lfxgroove

+0

谢谢@Anton这个问题让我觉得没有办法自动显示键盘。他和我有同样的解决方法。在我的XML中,我绝对使用SearchView。谢谢 – Diederik

回答

0

这应该工作:

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