Я пытался найти решение, которое подходит для моего конкретного случая использования, но мне еще предстоит найти правильную настройку.У меня есть кастом AlertDialog
с EditText
.Я обрабатываю ввод текста без системной клавиатуры, поэтому всплывающее окно, когда я показываю диалоговое окно на экране, является проблемой.
Я уже рассмотрел ряд различных решений, но ни одно из них не сработалодля меня.Этот вопрос переполнения стека , а также этот , этот Средний статья и этот учебник .
public void showAlert() {
alert.show();
InputMethodManager imm = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
// using this view to hide the keyboard causes a NPE
View view = ((AppCompatActivity) context).getCurrentFocus();
// I have also passed in a 0 for this one.
imm.hideSoftInputFromWindow(ttsAlert.getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
// This is the editText in the view
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
// This is the rootView of the custom layout
imm.hideSoftInputFromWindow(rootView.getWindowToken(), 0);
editText.setShowSoftInputOnFocus(false);
}
Если кто-то может определить, какую мелкую деталь (или большой, очевидный блок кода) я пропустил, чтобы не показывать клавиатуру, я был бы очень признателен.