Android mit setOnKeyListener
Ein neuer Eintrag für die Developer auf meiner Seite. Es dreht sich mal wieder um Android und dessen neue Möglichkeiten. Dank der virtuellen Tastatur kann man nun eingaben direkt auf dem Display tätigen und muss nicht jedesmal in die nervige Queransicht wechseln. Find ich mal ganz praktisch vorallem bei kleineren Anwendungen.
Aber die, die sich mit der “setOnKeyListener“ – Methode rumstreiten müssen und jedes mal zwei Actions ausgeführt bekommen wenn man z.b. auf KEYCODE_ENTER wartet. Hier die Lösung:
EditText textBox = (EditText) findViewById(R.id.textBox);
textBox .setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int key, KeyEvent event) {
if(key == event.KEYCODE_ENTER && event.getAction() == 1) {
Log.d("KEY_PRESSED","ENTER");
startSearch(v);
}
return false;
}
});
Ganz kurz und knapp:
Beim einfachen onKey Event werden jedesmal 3 Events ausgelöst. Einmal die Action der Taste und dann für “pressed” und “released” somit müsst ihr auch diese Events abfangen und auf eine gelöste oder gedrückte taste reagieren.
Das wäre dann dieser Part:
event.getAction() == 1
ich warte solange bis derjenige die Tase wieder los lässt.