Android: captura de acción para el teclado de entrar en el botón que se presiona

Estoy tratando de responder a presionar el botón de entrar en un sistema estándar en la pantalla de teclado suave, en modo numérico. Teclado aparece en la pantalla cuando la clase myCustomEditText se da el foco.

Intentado 2 enfoques:

  1. Sobreescribir onKeyDown() :


     Public boolean onKeyDown (int keyCode, KeyEvent evento) {
         If (keyCode == KeyEvent.KEYCODE_ENTER) {
             Hago algo
             Devuelve verdadero;
         }
         Return super.onKeyDown (keyCode, event);
     }

  1. setOnKeyListener escucha setOnKeyListener :

     MyCustomEditText.setOnKeyListener (nuevo OnKeyListener () {

         Public boolean onKey (Ver v, int keyCode, KeyEvent event) {
             If (keyCode == KeyEvent.KEYCODE_ENTER) {
                 OnRightButtonClicked ();
                 Devuelve verdadero;
             }
             falso retorno;
         }
     });

(También intentado onKeyDown() en myCustomEditText también, pero sin efecto)

El problema es: estos acercamientos arriba trabajan para todas las llaves que son presionadas pero para la llave de la entrada – los métodos no están incluso ser encendidos en todos. (No es un problema de mal KeyEvent.KEYCODE_... )

Mi pregunta es: ¿por qué estos métodos no se están disparando para la tecla Enter, pero son para otras teclas, y cómo escuchar la tecla enter se presiona correctamente?

One Solution collect form web for “Android: captura de acción para el teclado de entrar en el botón que se presiona”

Usted responde a ENTRAR de manera diferente a las teclas normales, pruebe algo como esto:

 editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { switch (actionId) { case EditorInfo.IME_ACTION_DONE: ... return true; default: return false; } } }); 

Puede especificar qué acción se realiza mediante ENTER especificando android:imeOptions en XML o llamando a editText.setImeOptions(...) con una de las constantes de EditorInfo . imeOptions también cambia el aspecto de la tecla ENTER . Por ejemplo, si establece imeOptions en actionSearch , la tecla ENTER se verá como un botón de búsqueda.

Puede encontrar una lista de todos los valores posibles para imeOptions junto con una descripción aquí .

  • Cordova Ionic: habilita el teclado suave de emoji de android
  • ¿Es posible usar adjustPan y mantener el modo de acción de selección en la pantalla?
  • React Native: Actualiza el diseño de la aplicación después de mostrar el teclado
  • La mejor manera de ocultar el teclado en Android
  • Evitar que el teclado suave se deseche
  • Ocultar teclado virtual al hacer clic en un botón
  • Cordova Ionic Keyboard plugin deshabilitar completamente en "Init"
  • Cómo detectar qué aplicación se abre en android
  • Encuentra el idioma del teclado Android actual
  • Edittext.settext () cambia el tipo de teclado a predeterminado
  • Comience un teclado diferente para diferentes actividades
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.