Призыв: Я понимаю, что у меня нет влияния, но, пожалуйста, отнеситесь к моему ответу серьезно.
Проблема: Отключить программную клавиатуру при нажатии кнопки вне клавиатуры или редактировать текст с минимальным кодом.
Решение: Внешняя библиотека известна как Butterknife.
One Line Solution:
@OnClick(R.id.activity_signup_layout) public void closeKeyboard() { ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); }
Более удобочитаемое решение:
@OnClick(R.id.activity_signup_layout)
public void closeKeyboard() {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
Объяснение: Свяжите OnClick Listener с родительским идентификатором XML-макета действия, чтобы любой щелчок по макету (не по тексту редактирования или клавиатуре) запустил этот фрагмент кода, который скроет клавиатуру.1028 * Пример: Если файл макета - R.layout.my_layout, а идентификатор макета - R.id.my_layout_id, то вызов связывания Butterknife должен выглядеть следующим образом:
(@OnClick(R.id.my_layout_id)
public void yourMethod {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
Butterknife Documentation Link: http://jakewharton.github.io/butterknife/
Штекер: Butterknife произведет революцию в развитии Android.Учтите это.
Примечание: Тот же результат может быть достигнут без использования внешней библиотеки Butterknife.Просто установите OnClickListener для родительского макета, как описано выше.