È possibile rilevare quando è Donestato premuto il tasto della tastiera su schermo?
È possibile rilevare quando è Donestato premuto il tasto della tastiera su schermo?
Risposte:
Sì, è possibile:
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;
}
});
Nota che dovrai importare le seguenti librerie:
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
Le informazioni sull'editor sono le classi più utili quando devi gestire qualsiasi tipo di input dell'utente nella tua applicazione Android. Ad esempio, nelle operazioni di accesso / registrazione / ricerca possiamo usarlo per un input da tastiera più accurato. Una classe di informazioni sull'editor descrive diversi attributi per l'oggetto di modifica del testo che un metodo di input comunicherà direttamente con il contenuto del testo di modifica.
Puoi provare con IME_ACTION_DONE .
Questa azione esegue Doneun'operazione per nulla da inserire e IMEverrà chiusa.
Utilizzo di 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 puoi farlo
@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_SEARCHil pulsante di ricerca dell'obiettivo.