Traemos la mejor información que hemos encontrado en línea. Nosotros queremos que te sirva de ayuda y si deseas aportar alguna mejora hazlo con total libertad.
Solución:
Solo agrega android:inputType="..."
a su EditText. ¡¡Funcionará!! 🙂
Debe configurar OnEditorActionListener para EditText para implementar la acción que desea realizar cuando el usuario hace clic en “Listo” en el teclado.
Por lo tanto, necesita escribir un código como:
password.setOnEditorActionListener(new OnEditorActionListener()
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
if (actionId == EditorInfo.IME_ACTION_DONE)
// Do whatever you want here
return true;
return false;
);
Vea el tutorial en el sitio para desarrolladores de Android
Qianqian tiene razón. Su código solo escucha el evento de clic del botón, no el evento EditorAction.
Quiero agregar que es posible que algunos proveedores de teléfonos no implementen correctamente la acción HECHO. He probado esto con un Lenovo A889 por ejemplo, y ese teléfono nunca envía EditorInfo.IME_ACTION_DONE
cuando presionas listo, siempre envía EditorInfo.IME_ACTION_UNSPECIFIED
así que en realidad termino con algo como
myEditText.setOnEditorActionListener(new EditText.OnEditorActionListener()
@Override
public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event)
);
También tenga en cuenta la bandera “manejada” (Qianqian no explicó esa parte). Puede ser que otros OnEditorActionListeners más arriba estén escuchando eventos de un tipo diferente. Si su método devuelve false, eso significa que no manejó este evento y se transmitirá a otros. si regresas true eso significa que lo manipuló/consumió y no se transmitirá a otros.
Calificaciones y reseñas
Puedes añadir valor a nuestra información colaborando tu veteranía en las acotaciones.