Я прочитал пару постов здесь, а также попробовал поискать в Google.Но у меня все еще есть эта проблема:
Я создал подклассный пользовательский диалог.Он содержит EditText и кнопку («ОК»).Я хочу, чтобы клавиатура отображалась автоматически после всплывающего диалогового окна.
Мне удалось это сделать, добавив:
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);
в моем dismiss () .
Это открывает клавиатуру, когда диалоговое окно появляется, и также закрывает клавиатуру, когда я нажимаю "OK".Кнопка ".
Однако, если программная клавиатура открыта, и я нажимаю кнопку HOME на моем телефоне / эмуляторе, они останутся открытыми, поскольку, как я понял, я открываю ее с помощью SHOW_FORCED.Таким образом, я попытался скрыть (используя toggleSoftInput () из InputMethodManager) клавиатуру, если она открыта в методе родительского действия диалогового окна onPause ().кажется, что это возможно только при использовании обходного пути, как видно ЗДЕСЬ .
TL; DR : я хочу, чтобы экранная клавиатура отображалась, когда мой диалог с EditTextи кнопка появляется (фокус на EditText).Я получил это, но это потребовало написания множества хаков, чтобы закрыть правильно.
Редактировать : я основал свой код на ЭТОМ