ActionBar から検索をアクティブにすると、この質問が SearchView EditText にフォーカスを設定するのがわかります。ただし、フォーカスを取得してもキーボードは表示されません。通常の EditText であるため、そうすべきではありませんか? (通常の EditText ですか?) この動作は、Android SDK レベル 11 で見られます (Samsung Galax Tab 7.7 とストック 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 のFAQによると:
Android 3.x のアクション バー (ハニカムとも呼ばれます) は、Android 4.x のアクション バー (Ice Cream Sandwich) のすべての機能を実装しているわけではありません。すべてのプラットフォームで完全なアクション バー API を提供し、Android のすべてのバージョンでスタイルを統一するために、カスタム実装が使用されます。