Tengo un Activity
con un EditText
, un botón y un ListView
. El propósito es escribir una pantalla de búsqueda en EditText
, presionar el botón y hacer que los resultados de búsqueda llenen esta lista.
Todo esto funciona perfectamente, pero el teclado virtual se comporta de manera extraña.
Si hago clic en EditText
, obtengo el teclado virtual. Si hago clic en el botón "Listo" en el teclado virtual, desaparece. Sin embargo, si hago clic en mi botón de búsqueda antes de hacer clic en "Listo" en el teclado virtual, el teclado virtual permanece y no puedo deshacerme de él. Al hacer clic en el botón "Listo" no se cierra el teclado. Cambia el botón "Listo" de "Listo" a una flecha y permanece visible.
Gracias por tu ayuda
fuente
inputManager.hideSoftInputFromWindow((null == getCurrentFocus()) ? null : getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
fuente
Usar debajo del código
fuente
Debe implementar
OnEditorActionListener
para su EditViewY ocultas el teclado por:
También debe disparar el teclado oculto en su botón usando
onClickListener
Ahora hacer clic en 'Listo' en el teclado virtual y el botón hará lo mismo: ocultar el teclado y realizar una acción de clic.
fuente
TextView.OnEditorActionListener
.Agregue el siguiente código dentro de su evento de clic de botón:
fuente
Dado que solo tiene un texto de edición, simplemente llame a la acción realizada para ese texto de edición dentro de su clic de botón y el resto es manejado por el sistema. Si tuviera más de un texto de edición, esto no sería tan eficiente porque primero debe obtener el texto de edición enfocado. Pero en tu caso funcionará perfectamente
fuente
Para la actividad,
Para fragmentos, use getActivity ()
getActivity (). getSystemService ();
getActivity (). getCurrentFocus ();
fuente
Esta solución funciona perfecta para mí:
fuente
Prueba esto...
Para mostrar el teclado
Para ocultar teclado
fuente
fuente
Ejemplo de Kotlin:
del fragmento:
de la actividad:
fuente
Utiliza este código en tu evento de clic de botón
fuente
Crash Null Point Exception Fix: tuve un caso en el que el teclado podría no abrirse cuando el usuario hace clic en el botón. Debe escribir una instrucción if para verificar que getCurrentFocus () no sea nulo:
fuente
Si configura
android:singleLine="true"
, automáticamente el botón oculta el teclado.fuente