¿Es posible detectar cuándo Donese presionó la tecla del teclado en pantalla?
¿Es posible detectar cuándo Donese presionó la tecla del teclado en pantalla?
Respuestas:
Sí, es posible:
editText = (EditText) findViewById(R.id.edit_text);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// do your stuff here
}
return false;
}
});
Tenga en cuenta que deberá importar las siguientes bibliotecas:
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
Una información del editor es la clase más útil cuando tienes que lidiar con cualquier tipo de entrada de usuario en tu aplicación de Android. Por ejemplo, en operaciones de inicio de sesión / registro / búsqueda, podemos usarlo para una entrada de teclado más precisa. Una clase de información de editor describe varios atributos para el objeto de edición de texto que un método de entrada se comunicará directamente con el contenido de texto de edición.
Puedes probar con IME_ACTION_DONE .
Esta acción realiza una Doneoperación para que no se ingrese nada y elIME se cerrará.
Usando setOnEditorActionListener
EditTextObj.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_DONE) {
/* Write your logic here that will be executed when user taps next button */
handled = true;
}
return handled;
}
});
Usando Butterknife puedes hacer esto
@OnEditorAction(R.id.signInPasswordText)
boolean onEditorAction(TextView v, int actionId, KeyEvent event){
if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
/* Write your logic here that will be executed when user taps next button */
}
return false;
}
EditorInfo.IME_ACTION_SEARCHel botón de búsqueda de lentes en su lugar.