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