If you own Android phone you are no doubt have noticed how in the certain apps the keyboard layout can change from the standard issue to digits-only or to have .com
or .net
special buttons based on the text field input type (e.g. phone number). So I have 2 questions:
- how to trigger this customization? I suspect it has to do with
EditText
format - Can this be taken even further if I want to add some custom buttons to inject a specific pattern? Say I would have an
AND
button which when pressed will add all uppercase " AND " surrounded by spaces to the text field. Can this be done? - What I'm not asking is how to capture some key combination in onKeyPress event and then populate text field with a pattern - I pretty much know how to do that already.
The thing that concerns me is that "inputType" is listed as a deprecated property, meaning it may work for a while, but - eventually - Android will stop supporting it. Is there another alternative?
UPDATED: My bad - I'm confusing with inputMethod.
It is controlled by the
android:inputType
XML attribute (or thesetInputType()
method).For info on the available options see the pages for the XML attribute or the object's method.
As an example, the following XML:
will give you this layout:
whereas changing the
inputType
totextEmailAddress
will give you this:You can customize the "action" button as explained here, but I don't believe there's any way to do full customization of keyboards at this time, but I could be wrong.