ダイアログ内にEditTextを実装して、ダイアログが立ち上がるのと同時にソフトウェアキーボードを表示する方法です。
ダイアログにsetOnShowListenerを実装して、onShow()メソッドをオーバーライドします。
onShow()内でInputMethodManagerを使ってソフトウェアキーボードを表示させます。
final Dialog newDialog = new Dialog(this); newDialog.setContentView(R.layout.mydialog); newDialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface arg0) { EditText editText = (EditText)newDialog.findViewById(R.id.edittext); InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(editText, 0); } }); newDialog.show();
ちなみにAlertDialog.BuilderはsetOnShowListener()メソッドを持っていないようです。
↓面倒ですがcreate()しましょう。
AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface arg0) { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(dialogEditText, 0); } }); alertDialog.show();
↓こちらの記事を参考にさせていただきました。ありがとうございます!
Y.A.M の 雑記帳 Android ダイアログ表示時にソフトキーボードを出す