i++

プログラム系のメモ書きなど

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 に書いてもキーボードは表示されません

参考