¿Cómo descarto el teclado cuando se presiona un botón?Android cerrar el teclado
Respuesta
¿Desea desactivar o descartar un teclado virtual?
Si desea simplemente descartarlo puede utilizar las siguientes líneas de código en tus del botón de evento Click
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
+1. Funciona como el encanto. –
Dos problemas con esto ... uno es que myEditText debe ser Final. En segundo lugar, tengo que saber qué cuadro EditText tiene el foco. ¿Alguna solución para esto? –
Para cualquier persona que tropiece aquí, puede usar la actividad (ya sea la actividad en la que se encuentra o los fragmentos 'getActivity()') 'getCurrentFocus(). GetWindowToken()' para la primera arg a 'hideSoftInputFromWindow()'. Además, hazlo en 'onPause()' y no en 'onStop()' si estás intentando que desaparezca al cambiar las actividades. –
también puede utilizar este código en el botón evento click
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Ese método fue el único que funcionó para mí, ¡gracias! – Emilio
Hmm. Esto no funciona en absoluto para mí. – tomwhipple
No funciona para mí tampoco en API 23 –
El La primera solución con InputMethodManager funcionó como un campeón para mí, el método getWindow(). setSoftInputMode no funcionaba en Android 4.0.3 HTC Amaze.
@Ethan Allen, no tuve que hacer el texto de edición final. ¿Tal vez estás usando una clase interna EditText que has declarado el método contenedor? Puede hacer que EditText sea una variable de clase de la Actividad. O simplemente declare un nuevo EditText dentro de la clase/método interno y use findViewById() nuevamente. Además, no encontré que necesitaba saber qué EditText en el formulario tenía foco. Podría elegir uno arbitrariamente y usarlo. Como lo siguiente:
¡Bienvenido a Stack Overflow! Esto es realmente un comentario, no una respuesta. Con un poco más de representante, [podrá publicar comentarios] (http://stackoverflow.com/privileges/comment). – Jack
Es una respuesta correcta. Gracias Andy! –
La solución anterior no funciona para todos los dispositivos y, además, usa EditText como parámetro. Esta es mi solución, simplemente llame a este método simple:
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);
}
}
punto fantástico, gracias – Fattie
'isAcceptingText()' hizo que esta respuesta sea mejor que otras – user1506104
Ésta es mi solución
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();
}
}
Aquí hay una solución Kotlin (mezcla de los diferentes respuestas en el hilo)
crear una función de extensión (quizás en una clase común de ViewHelpers)
fun Activity.dismissKeyboard() {
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
if(inputMethodManager.isAcceptingText)
inputMethodManager.hideSoftInputFromWindow(this.currentFocus.windowToken, /*flags:*/ 0)
}
Después, simplemente consumen usando:
// from activity
this.dismissKeyboard()
// from fragment
activity.dismissKeyboard()
- 1. Simulando abrir/cerrar el teclado de hardware en el emulador
- 2. Cerrar el teclado virtual en el botón presione
- 3. Android - ¿Detecta el teclado visible?
- 4. ¿Cómo se escucha el teclado abrir/cerrar en Javascript/Sencha?
- 5. Android spinner cerrar
- 6. Cuándo cerrar el cursor en Android?
- 7. Fuente de teclado Android
- 8. Teclado Android api
- 9. El teclado de Android oscurece EditText
- 10. Ocultar el teclado de Android para EditText
- 11. Extienda el teclado virtual de Android
- 12. Cómo abrir el teclado Android "? 123"
- 13. Encuentra el idioma del teclado Android actual
- 14. El teclado de Android no funciona
- 15. ¿Cómo descartar el teclado en Android SearchView?
- 16. Android wake lock force cerrar
- 17. Android SQLite DB Cuándo cerrar
- 18. Cerrar todos los hilos con una interrupción de teclado
- 19. Cerrar la aplicación para Android
- 20. Detectar evento de vuelta en el teclado de Android
- 21. Android PhoneGap - Teclado numérico solamente
- 22. Android: teclado personalizado y acción
- 23. Android: Detectar inactividad del usuario/Detectar (teclado) entrada de teclado
- 24. Ocultar el teclado virtual después de cerrar el cuadro de diálogo
- 25. Problema con el teclado Android 4.0 en el emulador.?
- 26. Android ViewPager muestra el teclado virtual en el lugar equivocado
- 27. ¿Cómo borrar el foco y quitar el teclado en Android?
- 28. ¿Cerrar SSL sin cerrar el socket subyacente?
- 29. Desventajas de Android de no cerrar el cursor
- 30. Cerrar la aplicación al presionar el botón Atrás en Android
Hacer un EditarTexto enfocable = False hace el trabajo. ¿Quieres deshabilitarlo por completo? – st0le