Tengo un control EditText. Si lo toco, aparecerá el menú emergente, sin embargo, cuando presiono "enter/ok/return", el control EditText todavía tiene el foco y el teclado hacia arriba.
¿Cómo cierro el teclado y le quito el foco?¿Cómo borrar el foco y quitar el teclado en Android?
Respuesta
Puede intentar hacer SetFocus()
en otro elemento de su diseño.
Si usted está hablando el botón "ENTER/OK/retorno" en el teclado en sí puede que tenga que configurar una KeyListener
en el control EditText
con el fin de saber cuándo SetFocus()
en otro elemento.
En el archivo del formato XML, especifique un imeOption en su EditarTexto:
android:imeOptions="actionGo"
A continuación, añadir un detector de acción a su EditarTexto en el archivo java de la Actividad
mYourEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO) {
// hide virtual keyboard
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mYourEditText.getWindowToken(), 0);
return true;
}
return false;
}
});
Dónde mYourEditText es un EditarTexto objetar
Hmm gracias. pero ¿se supone que debo escribir el imeOpt en el diseño o en el texto de edición? y obtuve un error en EditorInfo, ¿alguna idea? – carefacerz
¿Puedes explicar el EditorInfo? – carefacerz
Esto desactivará el teclado pero no eliminará el foco en todos los casos. IE android solicitará enfoque en la primera vista disponible que puede enfocar. – lostintranslation
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
Esto solo ocultará el teclado. No eliminará el foco. – lostintranslation
private void hideDefaultKeyboard() {
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
//you have got lot of methods here
}
asegurarse de que su XML EditarTexto tiene:
android:id="@+id/myEditText"
android:imeOptions="actionDone"
A continuación, establezca oyente a su EditarTexto (con Kotlin, ya partir de un fragmento):
myEditText.setOnEditorActionListener({ v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
myEditText.clearFocus()
val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view!!.windowToken, 0)
}
false
})
- 1. ¿Quitar el foco programmatically?
- 2. Cómo quitar el foco del botón Enviar
- 3. cómo quitar el texto en el foco de EditText en android?
- 4. Borrar el foco EditText cuando se presiona el botón Atrás cuando el teclado está mostrando
- 5. ¿Cómo borrar un cuadro de texto en el foco?
- 6. Cómo quitar el foco de un solo EDITTEXT
- 7. Ocultando el teclado al perder el foco en un UITextView
- 8. ¿Cómo se muestra el teclado numérico en EditText en android?
- 9. Android cerrar el teclado
- 10. Android ViewPager muestra el teclado virtual en el lugar equivocado
- 11. Ocultar el teclado al perder el foco de UISearchBar
- 12. ¿Cómo descartar el teclado en Android SearchView?
- 13. ¿Quitar el filtro de EditText en Android?
- 14. Se ha robado el foco del teclado mediante Flash
- 15. Cómo abrir el teclado Android "? 123"
- 16. git-gui: mover el foco del teclado a "archivos modificados"
- 17. Detectar evento de vuelta en el teclado de Android
- 18. cómo cambiar el color de foco de EditText en Android
- 19. Android - ¿Detecta el teclado visible?
- 20. Reparado: "Android: Detectando el foco/color presionado"
- 21. teclado en UIWebView muestra y luego se oculta en el foco de entrada
- 22. ¿Cómo abrir el teclado automáticamente en UITextField?
- 23. Evite que el teclado aparezca en el foco de texto/haga clic en iPad webapps
- 24. Android: Recuperando el foco usando SurfaceView
- 25. Cómo borrar el caché en Eclipse Android Emulator
- 26. ¿Cómo borrar el archivo de almacenamiento interno en android?
- 27. Cómo vaciar (borrar) el buffer de logcat en Android
- 28. Android: teclado personalizado y acción
- 29. en el cambio sin perder el foco?
- 30. Encuentra el idioma del teclado Android actual
entiendo que esta es la solución dada por muchas personas, pero No me gusta, porque en lugar de input.clearFocus() simplemente funciona (es decir, despejando el foco de esa entrada), ¿ahora tienes que establecer el foco en otra cosa? Parece contra-intuitivo. – marienke