Wenn die Nutzenden den Fokus auf eine bearbeitbare Textansicht wie eine
EditText
und eine Hardware-Tastatur angebracht ist,
Eingaben vom System verarbeitet. Wenn Sie jedoch Daten abfangen möchten,
oder die Tastatureingabe direkt verarbeiten können, können Sie dies tun, indem Sie Callback-Methoden implementieren.
aus KeyEvent.Callback
Schnittstelle, z. B. onKeyDown()
und onKeyMultiple()
.
Sowohl die Activity
und View
implementieren die
KeyEvent.Callback
-Oberfläche
die Callback-Methoden in der Erweiterung dieser Klassen überschreiben,
angemessen sein.
Hinweis:Bei der Verarbeitung von Tastaturereignissen mit der Eigenschaft
KeyEvent
und verwandten APIs,
dass die Tastaturereignisse nur von einer Hardwaretastatur kommen. Nie auf den Empfang eines Schlüssels verlassen
-Ereignisse für beliebige Tasten einer weichen Eingabemethode (einer Bildschirmtastatur) aus.
Ereignisse mit einem Schlüssel verarbeiten
Um einen einzelnen Tastendruck zu verarbeiten, implementieren Sie
onKeyDown()
oder onKeyUp()
,
. Normalerweise verwenden Sie
onKeyUp()
wenn Sie nur ein Ereignis erhalten möchten. Wenn Nutzende eine Taste gedrückt halten,
wird onKeyDown()
mehrmals aufgerufen.
Diese Implementierung reagiert beispielsweise auf einige Tastaturtasten, um ein Spiel zu steuern:
Kotlin
override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_D -> { moveShip(MOVE_LEFT) true } KeyEvent.KEYCODE_F -> { moveShip(MOVE_RIGHT) true } KeyEvent.KEYCODE_J -> { fireMachineGun() true } KeyEvent.KEYCODE_K -> { fireMissile() true } else -> super.onKeyUp(keyCode, event) } }
Java
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_D: moveShip(MOVE_LEFT); return true; case KeyEvent.KEYCODE_F: moveShip(MOVE_RIGHT); return true; case KeyEvent.KEYCODE_J: fireMachineGun(); return true; case KeyEvent.KEYCODE_K: fireMissile(); return true; default: return super.onKeyUp(keyCode, event); } }
Modifikatortasten bedienen
Reaktion auf Modifikatortastenereignisse, z. B. wenn eine Taste mit der Umschalttaste kombiniert wird
oder Strg auswählen, können Sie
KeyEvent
abfragen
das an die Callback-Methode übergeben wird. Verschiedene Methoden
bieten Informationen zu Modifikatortasten, z. B.
getModifiers()
und getMetaState()
.
Die einfachste Lösung ist jedoch zu prüfen,
genau die Modifikatortaste, die Ihnen wichtig ist, mit Methoden wie
isShiftPressed()
und isCtrlPressed()
.
Hier ist ein Beispiel für die onKeyUp()
-Implementierung
noch einmal mit zusätzlichen Maßnahmen, wenn die Umschalttaste mit einer der Tasten gedrückt wird:
Kotlin
override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { ... KeyEvent.KEYCODE_J -> { if (event.isShiftPressed) { fireLaser() } else { fireMachineGun() } true } KeyEvent.KEYCODE_K -> { if (event.isShiftPressed) { fireSeekingMissle() } else { fireMissile() } true } else -> super.onKeyUp(keyCode, event) } }
Java
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { ... case KeyEvent.KEYCODE_J: if (event.isShiftPressed()) { fireLaser(); } else { fireMachineGun(); } return true; case KeyEvent.KEYCODE_K: if (event.isShiftPressed()) { fireSeekingMissle(); } else { fireMissile(); } return true; default: return super.onKeyUp(keyCode, event); } }
Weitere Informationen
- <ph type="x-smartling-placeholder"></ph> Hilfe für Tastenkombinationen : ein Systembildschirm, auf dem Nutzer nach den Tastenkombinationen suchen können, die in Ihrer App verfügbar sind.