Kann festgestellt werden, wann die DoneTaste der Bildschirmtastatur gedrückt wurde?
Kann festgestellt werden, wann die DoneTaste der Bildschirmtastatur gedrückt wurde?
Antworten:
Ja, es ist möglich:
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;
}
});
Beachten Sie, dass Sie die folgenden Bibliotheken importieren müssen:
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
Eine Editor-Info ist die nützlichste Klasse, wenn Sie mit jeder Art von Benutzereingabe in Ihrer Android-Anwendung umgehen müssen. Zum Beispiel bei Anmelde- / Registrierungs- / Suchvorgängen können wir es für eine genauere Tastatureingabe verwenden. Eine Editor-Infoklasse beschreibt mehrere Attribute für Textbearbeitungsobjekte, die eine Eingabemethode direkt mit dem Bearbeiten von Textinhalten kommuniziert.
Sie können es mit IME_ACTION_DONE versuchen .
Diese Aktion führt eine DoneOperation aus, für die nichts eingegeben werden muss, und die IMEwird geschlossen.
Verwenden von 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;
}
});
Mit Butterknife können Sie dies tun
@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_SEARCHstattdessen nur den Objektivsuchknopf verwenden.