Cuando el usuario hace clic en EditView
, Android abre el teclado para que el usuario pueda escribir en el EditView
.
El problema es que cuando el usuario termina de escribir, no hay forma de ocultar el teclado. El usuario debe presionar el botón Atrás para ocultar el teclado.
¿Hay alguna forma de mostrar un Done
botón en el teclado que oculte el teclado?
Respuestas:
Utilice TextView.setImeOptions y páselo actionDone. me gusta
textView.setImeOptions(EditorInfo.IME_ACTION_DONE);
fuente
textView.setImeOptions(EditorInfo.IME_ACTION_DONE);
textView.singleLine(true)
para que esto funcione programáticamente.Primero debe establecer el
android:imeOptions
atributo igual aactionDone
para su EditText de destino como se ve a continuación. Eso cambiará su botón 'RETORNO' en el teclado virtual de su EditText a un botón 'HECHO'.fuente
android:singleLine="true"
para que esto funcione a través de xmlIncluya ambos
imeOptions
ysingleLine
:fuente
En el archivo XML funciona bien. Pero esto también hará
editText
que sigan escribiendo en una sola línea que es posible que no desee. Por lo tanto, agregar lo siguiente a su código se asegurará de que no termine escribiendo todo en una sola línea.fuente
Para conseguir el botón listo
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
y
android:inputType="text"
en el xmlPara el manejo de hecho clic desde el teclado
'
fuente
Utilizar este:
fuente
actionDone
allí también, en caso de que algunos dispositivos reaccionen de manera diferente.Utilice estas dos líneas para su
EditText
o puede lograrlo programáticamente con esta línea.
fuente
Si la propiedad no cambia para el widget, puede ser mejor usarla como
android:imeOptions="actionDone"
en elxml
archivo de diseño .fuente
Utilizar:
fuente
Para el código:
fuente
ActionDone se usa cuando se hace clic en el botón siguiente en el teclado que el teclado de tiempo está oculto. Usar en Editar texto o AppcompatEdit
XML
1.1 Si usa AppCompatEdittext
1.2 Si usa Edittext
JAVA
fuente
Tengo que señalar que muchas personas pueden luchar para lograrlo sin conocer el problema.
Si desea que el kb se oculte al hacer clic
Done
, y estableceandroid:imeOptions="actionDone"
&android:maxLines="1"
sin configurar su EditTextinputType
, NO funcionará como el valor predeterminadoinputType
para EditText no es"text"
como mucha gente piensa.Por lo tanto, la configuración sólo se
inputType
le dará los resultados que usted desea que sea lo que esté configurando a gusto"text"
,"number"
... etc.fuente
En realidad, puede configurar texto personalizado para ese pequeño botón azul. En el archivo xml solo use
en su EditText.
O en el uso del archivo java
Elijo arbitrariamente IME_ACTION_DONE como un ejemplo de lo que debería ir en el segundo parámetro para esta función. Puede encontrar una lista completa de estas acciones aquí .
Cabe señalar que esto no hará que aparezca texto en todos los teclados de todos los dispositivos. Algunos teclados no admiten texto en ese botón (por ejemplo, tecla rápida). Y algunos dispositivos tampoco lo admiten. Una buena regla es que, si ya ve texto en el botón, esto lo cambiará a lo que desee.
fuente
Solución de Kotlin
La forma directa de manejar el teclado ocultar + acción realizada en Kotlin es:
Extensión de Kotlin
Use esto para llamar
edittext.onDone {/*action*/}
a su código principal. Lo mantiene más legible y fácil de mantenerExtensiones de teclado adicionales
Si desea más formas de simplificar el trabajo con el teclado (mostrar, cerrar, enfocar): lea esta publicación
fuente
usa esto en tu vista
fuente
Si esta usando
entonces debes usar
entonces solo usted puede ver el botón Acción realizada en el teclado.
fuente
Si no desea ningún botón en absoluto (por ejemplo, está desarrollando una GUI para personas ciegas donde el toque no puede ser posicional y depende de los toques simples / dobles / largos):
O en Kotlin:
fuente