Как отменить клавиатуру при нажатии кнопки?Android убрать клавиатуру
ответ
Вы хотите отключить или отклонить виртуальную клавиатуру?
Если вы хотите просто уволить его, вы можете использовать следующие строки кода в вашей кнопки на мыши Event
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
+1. Работает как шарм. –
Две проблемы с этим .... один заключается в том, что myEditText должен быть Final. Во-вторых, я должен знать, какое поле EditText имеет фокус. Любое решение? –
Для любого другого, кто спотыкается здесь, вы можете использовать активность (или активность, в которой вы находитесь, или фрагменты 'getActivity()') 'getCurrentFocus(). GetWindowToken()' для первого arg для 'hideSoftInputFromWindow()'. Кроме того, сделайте это в 'onPause()', а не 'onStop()', если вы пытаетесь заставить его уйти при изменении действий. –
вы также можете использовать этот код на кнопки мыши событие
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Этот метод был единственным, кто работал на меня, спасибо! – Emilio
Хм. Это не работает для меня. – tomwhipple
Не работает для меня ни на API 23 –
первое решение с InputMethodManager работало как класс для меня, getWindow(). Метод setSoftInputMode не был установлен на android 4.0.3 HTC Amaze.
@ Ethan Allen, мне не нужно было редактировать текст редактирования. Может быть, вы используете внутренний класс EditText, который вы объявили содержащим методом? Вы можете сделать EditText переменной класса Activity. Или просто объявите новый EditText внутри внутреннего класса/метода и снова используйте findViewById(). Кроме того, я не обнаружил, что мне нужно знать, какой EditText в форме имеет фокус. Я мог бы выбрать один произвольно и использовать его. Вроде так:
Добро пожаловать в Stack Overflow! Это действительно комментарий, а не ответ. С немного больше rep, [вы сможете оставлять комментарии] (http://stackoverflow.com/privileges/comment). – Jack
Это правильный ответ. Спасибо Энди! –
Решение, приведенное выше, не работает на всех устройствах, и, кроме того, оно использует параметр EditText в качестве параметра. Это мое решение, просто назвать этот простой метод:
private void hideSoftKeyBoard() {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
if(imm.isAcceptingText()) { // verify if the soft keyboard is open
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
фантастическая точка, спасибо – Fattie
'isAcceptingText()' сделал этот ответ лучше других – user1506104
Это мое решение
public static void hideKeyboard(Activity activity) {
View v = activity.getWindow().getCurrentFocus();
if (v != null) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
public static void hideSoftInput(Activity activity) {
try {
if (activity == null || activity.isFinishing()) return;
Window window = activity.getWindow();
if (window == null) return;
View view = window.getCurrentFocus();
//give decorView a chance
if (view == null) view = window.getDecorView();
if (view == null) return;
InputMethodManager imm = (InputMethodManager) activity.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm == null || !imm.isActive()) return;
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
} catch (Throwable e) {
e.printStackTrace();
}
}
Вот решение Котлин (смешивание различных ответов в теме)
Создать (возможно, в общем классе ViewHelpers)
fun Activity.dismissKeyboard() {
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
if(inputMethodManager.isAcceptingText)
inputMethodManager.hideSoftInputFromWindow(this.currentFocus.windowToken, /*flags:*/ 0)
}
Тогда просто потреблять с помощью:
// from activity
this.dismissKeyboard()
// from fragment
activity.dismissKeyboard()
- 1. MFMessageComposeViewController убрать клавиатуру
- 2. UIKeyboardTypeNumberPad убрать клавиатуру
- 3. iOS - как убрать клавиатуру?
- 4. UITextfield внутри UITableViewCells - убрать клавиатуру
- 5. Как убрать клавиатуру на UIWebView?
- 6. Как убрать клавиатуру iOS программно
- 7. Невозможно убрать клавиатуру с UITextField
- 8. Как убрать клавиатуру для UITextView
- 9. в быстром, как убрать клавиатуру
- 10. Как убрать клавиатуру в случае модального просмотра?
- 11. Как убрать клавиатуру после редактирования текстового поля
- 12. Как сделать «убрать клавиатуру» на iPhone?
- 13. Как убрать клавиатуру iOS на вид таблицы
- 14. Лучший способ убрать клавиатуру в UITextView?
- 15. Как убрать клавиатуру с несколькими UITextField
- 16. Невозможно убрать клавиатуру, делегат UITextField называется OK
- 17. Как убрать клавиатуру, нажав на экран
- 18. Как скрыть клавиатуру по диалогу убрать
- 19. убрать клавиатуру без сенсорного распознавателя жестов
- 20. Как убрать клавиатуру из текстового вида программно
- 21. Как убрать клавиатуру при касании UIControl?
- 22. Можно ли убрать клавиатуру в QLPreviewController
- 23. Как убрать цифровую клавиатуру после десяти цифр?
- 24. IOS 8 не может убрать клавиатуру из UITextField
- 25. Как убрать клавиатуру при касании вне текстового поля?
- 26. Как убрать клавиатуру при касании UITextView, когда клавиатура уже установлена?
- 27. Как убрать клавиатуру на ключ возврата из UITextView
- 28. как я могу убрать клавиатуру на Enter keypress
- 29. Как убрать клавиатуру на iPhone 6 после ротации
- 30. как убрать клавиатуру, когда вы закончите печатать на iphone?
Сделать EditText Focusable = False делает работу. Вы хотите полностью отключить его? – st0le