form Benutzerdefiniertes "Keyboard" in einer Android-Anwendung




android show keyboard (3)

Ich habe versucht, eine benutzerdefinierte Tastatur für meine Anwendung zu erstellen. Zuerst habe ich mich für die SDK-Beispiele mit dem SoftKeyboard befasst, aber das Lesen der Android Developer Group führte mich zu diesem Post:

Dies ist wirklich nicht so, wie das Eingabemethoden-Framework funktionieren soll. Ein IME sollte eine generische Eingabefunktion sein, nicht für eine bestimmte Anwendung. Wenn Sie einige anwendungsspezifische Eingaben benötigen, sollten Sie sie in Ihre Benutzeroberfläche integrieren, anstatt sie an einen generischen IME zu senden.

Wie erstelle ich eine anwendungsspezifische Eingabe in der Benutzeroberfläche? Ich meine, gibt es eine Möglichkeit, die Tastatur App oder etwas zu erweitern und nur in meiner Anwendung zu verwenden?

Features für die Tastatur benötigt:

  • Umschalttaste, um einige andere Tasten anzuzeigen
  • Sondertasten wie Quadratwurzel oder PI
  • etc.

PS: Eine hässliche Lösung könnte sein, eine Tabelle mit ImageButton zu erstellen, aber ich wollte etwas sauber machen.



Answer #2

Ich bin mir nicht sicher, ob es eine einfache Lösung dafür gibt (insofern ist es sogar möglich, den wahren Grund hinter der ursprünglichen Frage zu verstehen).

Wie in der ursprünglichen Frage zitiert:

Wenn Sie einige anwendungsspezifische Eingaben benötigen, sollten Sie sie in Ihre Benutzeroberfläche integrieren, anstatt sie an einen generischen IME zu senden.

Was damit gemeint ist, ist nicht, dass Sie innerhalb Ihrer App versuchen sollten, solche Eingabemerkmale einzubauen, indem Sie die Soft-Tastatur auf dem Telefon erweitern oder modifizieren . Es gibt so viele verschiedene Soft-Tastaturen (und im Prinzip ist die Soft-Tastatur nur eine andere App), da die meisten Handy-Hersteller ihre eigene Version erstellen und die Drittanbieter-Tastaturen (wie Swype oder SwiftKey usw.) herunterladen, und ich kann nicht es gibt eine Möglichkeit für Sie, in diejenigen zu "hacken", die ein paar Knöpfe hinzufügen oder was immer Sie wollen (was auch ein großes Sicherheitsloch sein könnte, ein weiterer Grund, warum es wahrscheinlich nicht möglich ist).

Was stattdessen das obige Zitat vorschlägt, ist, dass Sie neben der Tastatur eine andere Form der Eingabe erstellen müssen. Ein Beispiel dafür, und wenn ich hinzufügen möchte , ist, wie der RealCalc Scientific Calculator aussieht:

Nun, das ist keine Open Source, also kann ich nur raten, wie der Code aussieht (aber auch nicht zu schwer): In seiner einfachsten Form ist das nur ein Raster mit vielen buttons . Jede Schaltfläche behandelt das onClick-Ereignis, was bedeuten würde, irgendeine Aktion auszuführen (die Beschriftung einiger anderer Schaltflächen ändern, ein Menü anzeigen, einen Text in der oberen Beschriftung anzeigen oder was auch immer), und das ist wahrscheinlich ziemlich genau das, was dazu gehört. Und natürlich wird die Soft-Tastatur des Telefons nie angezeigt (da Sie keine Tastatur mit all diesen Tasten benötigen (und auch keine Eingabefelder, in die etwas geschrieben werden kann).

Es läuft alles auf das bereits erwähnte Zitat hinaus: Wenn Sie eine App-spezifische Eingabe benötigen, sollten Sie es in Ihrer Benutzeroberfläche erstellen . Oder mit anderen Worten: Erstellen Sie Schaltflächen (und zeigen Sie die Soft-Tastatur nicht an, wenn Sie sie nicht benötigen) und sorgen Sie dafür, dass Dinge geschehen, wenn Sie darauf klicken.

Und nur um es zu erwähnen: Wenn Sie Ihren eigenen IME erstellen möchten (was meiner Meinung nach hier nicht der Fall ist), sollten Sie sich die folgenden Ressourcen ansehen:






keyboard