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!

Was it helpful?

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:

alt text

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top