В приложении для Android, каждый раз, когда действие запускается, текстовое поле получает фокус, и программируемая клавиатура открывается автоматически. Я попытался остановить это при помощи следующей строки в onCreate методе, но это не работает.
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(EditText.getWindowToken(), 0);
Вы можете использовать следующую строку кода, чтобы убедиться, что клавиатура появляется только тогда, когда пользователь нажимает на EditText
Java
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Kotlin
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
И
Вам необходимо добавить
android: windowSoftInputMode = "adjustResize"
в тег активности в файле AndroidManifest.xml.
Работает ли следующее?
// Find editor
EditText editWindowInstance = this.findViewById(R.id.MyEditWindow);
// close soft keyboard
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(editWindowInstance.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
У меня работает следующий код
((InputMethodManager) iClockActivity
.getSystemService(Context.INPUT_METHOD_SERVICE))
.showSoftInput(textView, 0);