Input Field With Custom Input Method
-
19-09-2019 - |
Question
I would like to show a custom input field (specifically, one containing only 9-0 and two extra buttons containing decimal separator (, or .) and a delete button).
I could create a custom IME, but (as far as I know) that would have to be set by the user as the system-wide input method. Is there a way to implement an input method and bind it to a specific input field?
Thanks for the help!
Solution
I think you're right in that you can't have a Custom IME that you only use for specific fields in your application. It would have be switched on globally by the user.
Whatever you do make sure you have an appropriate InputFilter
to go with whatever custom input method you have to restrict input from a hardware keyboard.
As you've set android:inputType
for the field this will add an appropriate InputFilter
automatically and it will also tell whatever IME is selected to display appropriate input buttons. For the default Android IME all this does is display the numeric page rather than the alphabetic page first:
OTHER TIPS
What about using a custom "pop-up" of sorts in where your app implements an onClick()
or onTouch()
listener for the input box so that when the user clicks in the input field to enter a value they see a new simple activity with the input method overridden as suggested by @Dave Webb. In theory shouldnt be too much more code or overhead.