Kullanıcı odağı ayna gibi düzenlenebilir bir metin görünümüne verdiğinde
EditText
.
öğesi varsa ve kullanıcıya bir donanım klavyesi takılıysa
giriş sistem tarafından işlenir. Ancak belirli bir sayıda
klavye girişini doğrudan kendiniz hallediyorsanız, geri çağırma yöntemleri ile bunu
KeyEvent.Callback
liginden
arayüz, örneğin onKeyDown()
ve onKeyMultiple()
.
Hem Activity
ve View
sınıfta
KeyEvent.Callback
arayüzünü kullanın.
genellikle bu sınıfların uzantısında bulunan geri çağırma yöntemlerini geçersiz kılar,
uygun olmalıdır.
Not: Klavye etkinliklerini
KeyEvent
sınıfı ve ilgili API'ler,
klavye etkinliklerinin yalnızca bir donanım klavyesinden gelmesini bekleyin. Hiçbir zaman anahtarı alma
Yumuşak giriş yöntemindeki (dokunmatik klavye) herhangi bir tuşa ilişkin etkinlikler.
Tek önemli etkinlikleri yönetme
Tek bir tuşa basma işlemini gerçekleştirmek için
onKeyDown()
.
veya onKeyUp()
,
gerektiği şekilde ele alın. Genellikle
onKeyUp()
.
. Kullanıcı bir tuşa basılı tutarsa
onKeyDown()
birden fazla kez çağrılır.
Örneğin, bu uygulama bir oyunu kontrol etmek için bazı klavye tuşlarına yanıt verir:
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); } }
Herkese açık kullanıcı adı değiştirici tuşlar
Değiştirici tuş etkinliklerine (ör. bir tuş üst karakter ile birleştirildiğinde) yanıt vermek için
veya Control kullanıyorsanız,
KeyEvent
öğesini sorgula
geri çağırma yöntemine aktarılan bir değer içerir. Çeşitli yöntemler
değiştirici tuşlar hakkında bilgi sağlar. Örneğin:
getModifiers()
.
ve getMetaState()
.
Ancak en basit çözüm, sistemle ilgili
tam olarak ilgilendiğiniz değiştirici tuşa basılması,
isShiftPressed()
.
ve isCtrlPressed()
.
Örneğin, onKeyUp()
uygulaması örneğini burada görebilirsiniz
aşağıdaki işlemler de aynı şekilde yapılır: Üst Karakter tuşu aşağıdaki tuşlardan biriyle basılı tutulduğunda:
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); } }
Ek kaynaklar
- Klavye Kısayolları Yardımcısı : Kullanıcıların, uygulamanızın sunduğu klavye kısayollarını aramasına olanak tanıyan bir sistem ekranı.