Android : SearchView を含むダイアログ起動時にキーボードを自動で表示する
Dialog#setOnShowListener にキーボードを表示するコードを入れます。
// AlertDialog.Builder の Create で Dialog を作成 // Dialog にセットした View に SearchView があり、 // mSeachView として変数に保存しているものとする dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(mSearchView.findFocus(), 0); } }); dialog.show();
注意
- showSoftInput に SearchView.findFocus() を使うこと。SearchView 自体や、SearchView.getFocusedChild() を渡してもキーボードは表示されません
- Dialog の OnShowListner に入れること。SearchView の setOnQueryTextFocusChangeListener や setOnFocusChangeListener に書いてもキーボードは表示されません
参考