Frage

Ich möchte ein benutzerdefiniertes Eingabefeld (insbesondere eines mit nur 9-0 und zwei zusätzlichen Schaltflächen enthalten, die Dezimaltrennzeichen (or.) Und Löschungstaste enthalten).

Ich könnte ein benutzerdefiniertes IME erstellen, aber (soweit ich weiß), das vom Benutzer als systemweite Eingabemethode festgelegt werden müsste. Gibt es eine Möglichkeit, eine Eingabemethode zu implementieren und an ein bestimmtes Eingangsfeld zu binden?

Danke für die Hilfe!

War es hilfreich?

Lösung

Ich denke, Sie haben Recht, dass Sie kein benutzerdefiniertes IME haben können, das Sie nur für bestimmte Felder in Ihrer Anwendung verwenden. Es wäre vom Benutzer global eingeschaltet worden.

Was auch immer Sie tun, stellen Sie sicher, dass Sie eine angemessene haben InputFilter Um mit jeder benutzerdefinierten Eingabemethode einzugehen, müssen Sie die Eingaben von einer Hardware -Tastatur einschränken.

Wie Sie gesetzt haben android:inputType Für das Feld fügt dies eine angemessene hinzu InputFilter automatisch und es wird auch Sagen Sie, was auch immer IME ausgewählt ist, um geeignete Eingangstasten anzuzeigen. Für das Standard -Android -IME wird all dies eher die numerische Seite als die alphabetische Seite zuerst angezeigt:

alt text

Andere Tipps

Was ist mit einer benutzerdefinierten "Pop-up", in der Ihre App eine implementiert und eine implementiert? onClick() oder onTouch() Hörer für das Eingabefeld, damit der Benutzer, wenn der Benutzer im Feld Eingabe klickt, um einen Wert einzugeben, eine neue einfache Aktivität mit der von @Dave Webb vorgeschlagenen Eingabemethode angezeigt wird. Theoretisch sollte nicht zu viel mehr Code oder Overhead sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top