2010-11-24 7 views
6

Ich möchte an ein Ereignis haken, das ausgelöst wird, wenn die Bildschirmtastatur von Android angezeigt wird. Zum Beispiel, wenn der Benutzer EditText tippt, um die Tastatur zu öffnen. Wer weiß, welches Ereignis (oder Zuhörer) zu verwenden ist?Android: Welches Ereignis wird ausgelöst, wenn auf der Bildschirmtastatur angezeigt wird?

Timo

+0

Android-Dokumentation bezieht sich auf InputMethodService onEvaluateInputViewShown() -Methode, die tun könnte, was ich wollte, aber ich bin nicht in der Lage, eine Instanz davon zu ergreifen. Ich habe versucht mit InputMethodManager imm = (InputMethodManager) getSystemService (INPUT_METHOD_SERVICE); aber diese Instanz hilft mir nicht, zu InputMethodService zu gelangen. – Pompair

Antwort

0

Es wird keine Art und Weise zu bestimmen, wenn die Tastatur kommt, aber wenn Sie überprüfen wollen, wenn der Benutzer auf einem EditText tippt können Sie einen Klick Hörer oder eine onfocuschangedlistener zu dieser Ansicht registrieren.

+1

Hallo, danke für die Antwort. Ich weigere mich jedoch, dies als endgültige Wahrheit zu akzeptieren. =) – Pompair

+0

Soft-Tastaturen sind Teil des IME, und manche "knallen" gar nicht (oder existieren überhaupt), besonders auf Geräten mit einer immer belichteten harten Tastatur. – Blrfl

+0

Im Fall von Droid/Milestone können Sie nicht wissen, ob das OSK einfach EditText-Ereignisse abhören wird, weil Sie nicht wissen, ob die HW-Tastatur aus ist oder nicht. – Juhani

1

Nach der folgenden Diskussion thread in Android Entwickler Google Group die einzige Möglichkeit, dies zu lösen ist auf Größe geändert Ereignisse der Hauptansicht zu hören. Der Thread ist aber ziemlich alt. Ich frage mich, ob irgendwelche der neueren APIs besseren Weg zur Verfügung gestellt haben.

http://groups.google.com/group/android-developers/browse_thread/thread/9d1681a01f05e782

Der letzte Beitrag erläutert eine Logik hinter einer Arbeitslösung.

Verwandte Themen