EditText
в активити, в результате чего появляется клавиатура. Избавиться от этого поведения помогает значение stateAlwaysHidden
для атрибута манифеста windowSoftInputMode
. Но, к сожалению, этот атрибут не срабатывает при последующей ручной установке фокуса.Чтобы спрятать клавиатуру в процессе работы, придется воспользоваться сервисом
InputMethodManager
:
(InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE)
Для этого вызывается
InputMethodManager.hideSoftInputFromWindow()
. Он требует параметр windowToken
, который можно достать из текущего View
методом getWindowToken()
.Второй параметр метода
hideSoftInputFromWindow
– флаг. Без флага (значение 0
) метод сработает в любой ситуации. Если же передать флаг InputMethodManager.HIDE_IMPLICIT_ONLY
, не скроется клавиатура, которую пользователь вызвал явно.Чтобы клавиатура не появилась снова, кроме вызова
hideSoftInputFromWindow
необходимо снять с элемента фокус: getCurrentFocus().clearFocus()
.