ここでいくつかの投稿を読み、グーグルも試しました。しかし、まだこの問題があり
ます。サブクラス化されたカスタム ダイアログを作成しました。EditText と Button (「OK」) が含まれています。ダイアログがポップアップしたら、キーボードを自動的に表示したい。
私はこれを置くことで成功しました:
imm = (InputMethodManager) EditDialog.this.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS);
カスタムダイアログのonCreate ()で
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
私の却下()で。
これにより、ダイアログがポップアップするとキーボードが開き、「OK」ボタンを押すとキーボードが閉じます。
ただし、ソフトキーボードが開いているときに電話/エミュレーターのホームボタンを押すと、キーボードは開いたままになります。これは、SHOW_FORCEDで強制的に開くためです。したがって、ダイアログの親アクティビティ onPause() メソッドでキーボードが開いている場合、(InputMethodManager から toggleSoftInput() を使用して) キーボードを非表示にしようとしました。HEREに見られるように、これは回避策を使用してのみ可能であるようです。
TL;DR : EditText と Button を含むダイアログがポップアップしたときに、ソフト キーボードが表示されるようにします (EditText に焦点を当てます)。私はそれを機能させましたが、それを適切に閉じるには多くのハックを書く必要がありました.
編集:私はTHISに基づいてコードを作成しました