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?

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í .

  • Problemas con la entrada de teclado de accesibilidad en Android con React Native
  • Cordova 3.4 - Detectar evento de teclado
  • El teclado no desaparece cuando se utiliza iScroll
  • Cómo obtener la altura del teclado suave. (Excepto las sugerencias)
  • Problemas de teclado surgidos en el cambio de orientación
  • Obtener la altura del teclado suave en modo de pantalla completa
  • Teclado Emoji en la aplicación
  • Listín de eventos de Softkeyboard en Android
  • Ocultar ImageView cuando aparezca el teclado y mostrarlo cuando desaparezca el teclado
  • Evento de teclado de hardware de captura de Android sin vista de edittext
  • Disposición POPUP del teclado suave
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.