Eingabefeld mit benutzerdefinierter Eingabemethode
-
19-09-2019 - |
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!
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:
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.