我看到这个问题在从ActionBar激活搜索时将焦点设置在SearchView EditText上。然而,当它获得焦点时,键盘并没有弹出来。作为一个普通的EditText,它不应该这样吗?(它是一个普通的EditText吗?)这种行为在Android SDK 11级上可见。(带有原始Android的三星Galax Tab 7.7。)
目前我有一个解决方法,它钩入我的Activity的onOptionsItemSelected(MenuItem item)方法,显示键盘。
目前我有一个解决方法,它钩入我的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;
}
其中mInputManager
是InputMethodManager
的一个实例。
ActionBar是使用ActionBarSherlock构建的,由于目标设备是Android 3.x,这可能是症状的原因。根据ActionBarSherlock的FAQ:
Android 3.x(也称为Honeycomb)上的操作栏并未实现Android 4.x(Ice Cream Sandwich)中的所有功能。为了在所有平台上提供完整的操作栏API,并统一所有Android版本的样式,使用自定义实现。
EditText
时,就像ActionBarSherlock的示例文件一样(即:我无法使我的文本更改等回调起作用),但当我将其更改为SearchView
并添加适当的回调时,它就开始按预期工作了。也许可以试试这个? - lfxgroove