Ich mache eine benutzerdefinierte Tastatur, die ich in eine App aufnehmen möchte. Ich kenne bereits how to make a system keyboard. Ich möchte das nicht tun, weil es vom Benutzer installiert werden muss.Wie bekomme ich einen Verweis auf die InputConnection eines Android EditText?
Immer wenn der Benutzer eine Taste auf der Tastatur drückt, sollte er den Schlüsseltext an die Stelle EditText
senden, die augenblicklich den Fokus hat (falls vorhanden).
Ein Editor muss mit dem IME, empfängt Befehle über diese
InputConnection
Schnittstelle und das Senden von Befehlen überInputMethodManager
zu interagieren.
Dies wird in der folgenden Abbildung veranschaulicht (View
ist eine EditText
).
Dies macht es klingen wie soll ich einen Eingangsanschluss unter Verwendung mit dem EditText
zu kommunizieren. Meine Frage ist also, wie bekommt meine benutzerdefinierte Tastaturansicht einen Verweis auf die aktuell fokussierte EditText
Eingangsverbindung. Oder wie startet es diese Verbindung?
Verwandte
- How to send key event to an edit text
- Custom 'Keyboard' built in an application on Android
- Want custom keyboard to ONLY be used for MY APP and restore previous when app loses focus
- Android development: Custom keyboard
'View # onCreateInputConnection'? – pskink
Die Dokumente sagen: * "Erstellen Sie eine neue InputConnection für eine InputMethode, um mit der Ansicht zu interagieren. Die Standardimplementierung gibt NULL zurück, da sie Eingabemethoden nicht unterstützt. Sie können dies überschreiben, um diese Unterstützung zu implementieren. Dies ist nur für Sichten erforderlich das nehme Fokus und Texteingabe. "* – pskink
@pskink Oh, ich habe deinen ersten Kommentar zu schnell gelesen. Ich dachte, es wäre so etwas wie 'getInputConnection'. Ich habe "onCreateInputConnection" überschrieben, um einen benutzerdefinierten 'EditText' zu erstellen (siehe [hier] (https://stackoverflow.com/a/44342915/3681880) und [hier] (https://github.com/suragch/mongol- Bibliothek/Blob/Master/Mongol-Bibliothek/src/main/Java/Net/Studiomongolian/Mongolibrary/MongolEditText.java)). Jetzt versuche ich, den anderen Weg zu gehen, das heißt, mache den IME, der mit dem 'EditText' spricht. – Suragch