onKeyListener funktioniert nicht auf der virtuellen Tastatur
Ich verstehe nicht, warum dieses Stück code nicht funktioniert. Nur die backspace-und return-Taste erkannt werden. Hörer nicht Feuer für eine beliebige andere Taste. Mein Gerät ist Nexus One.
Habe ich versucht zu überschreiben Aktivität OnKeyDown-Methode und das ist noch schlimmer. Die einzige Taste erkannt wurde hardware-zurück-Taste.
Sehe ich um einen Vorschlag, TextWatcher und onTextChanged, während das funktioniert vielleicht in manchen Fällen ist es kein wirklicher umgehen. Zum Beispiel, wenn die textbox leer ist, werden Sie nicht erkennen, wenn Benutzer drücken Sie die Rücktaste(Entf) - Taste.
Also, irgendwelche Ideen?
TextView txtInput = (TextView)findViewById(R.id.txtInput);
txtInput.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
makeToast(keyCode + " key pressed");
return true;
}
});
InformationsquelleAutor der Frage bobetko | 2010-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok. Ich endlich herausgefunden, wie das zu tun, was ich will, und ich bin nicht stolz auf Android für diese.
Ich Schreibe server - /client-Anwendung, wo auf dem client habe ich zum öffnen SoftKeyboard und senden Sie den gedrückten Tasten (Zeichen-und DEL-Taste)... Jedes mal, wenn Taste gedrückt wird, wird das Zeichen wird zum server gesendet wird. Wenn DEL gedrückt wird, sende ich Folge {BS} server.
Damit zu tun, dass ich umzusetzen hatte TextWatcher und onTextChange das funktioniert gut, außer für die situation, wenn EditText leer ist und der Benutzer drücken Sie die Taste ENTF. Da es keine änderungen im EditText es gibt keine Möglichkeit zu erkennen, dass die DEL-Taste gedrückt wird.
Neben TextWatcher, die ich umzusetzen hatte onKeyListener, die ich an meinem EditText-Steuerelement. Diese onKeyListener ignoriert alle Tasten auf SoftKeyboard außer DEL und ZURÜCK. Nicht sicher, warum? Ein bug vielleicht?
Hier ist mein code:
und TextWatcher....
InformationsquelleAutor der Antwort bobetko
Du getan hast ein Fehler hier.
es sollte
return true
,Falls Sie das Ereignis behandelt. Wenn Sie möchten, erlauben, den Fall zu behandeln, der durch den nächsten Empfänger,return false
Sie sind immer true zurück
InformationsquelleAutor der Antwort Labeeb Panampullan
Hinweis : inputtype erwähnen in Ihrem edittext.
InformationsquelleAutor der Antwort Hari krishna Andhra Pradesh
Haben Sie versucht, mit den spezifischen listener sub-Klasse für diese Ansicht?
Ich hatte ein ähnliches problem mit einem EditText. Der code unten funktioniert:
Aber wenn ich die
View.OnKeyListener
ich nur das aufnehmen, backspace und enter. Es könnte ein ähnliches problem mitTextView
. Vielleicht ist die Unterklasse Schlüssel Zuhörer sind empfindlich auf mehr Ereignisse, die für die gegebeneView
Unterklasse.InformationsquelleAutor der Antwort Adam A.
Hatten wir den TextWatcher problem auf dem iPhone als auch-wenn Puffer leer ist, wird die Tastatur nicht senden del Ereignis. Wir arbeiteten um ihn herum durch das Vorabladen der Tastatur-Puffer mit 1000 Zeichen. Zum Glück, unsere app verbarg das Eingabefeld hinter der Tastatur, so dass die 1000 Zeichen nicht gesehen. Es ist hässlich, aber es funktioniert (es sei denn, der user hat 1000 löscht in einer Reihe vor der Eingabe der Daten!)
InformationsquelleAutor der Antwort user199395