6

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:

  1. how to trigger this customization? I suspect it has to do with EditText format
  2. 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?
  3. 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.
Cœur
  • 37,241
  • 25
  • 195
  • 267
Bostone
  • 36,858
  • 39
  • 167
  • 227

2 Answers2

7

It is controlled by the android:inputType XML attribute (or the setInputType() 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:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <EditText 
        android:text="example text"  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:inputType="phone" />
</LinearLayout>

will give you this layout:

Hosted by imgur.com

whereas changing the inputType to textEmailAddress will give you this:

Hosted by imgur.com

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.

Community
  • 1
  • 1
Jeremy Logan
  • 47,151
  • 38
  • 123
  • 143
  • 1
    Very nice, thank you. Do you know if it's possible to fake ALT key on the virtual keyboard somehow? Can I designate say HOME button as ALT? – Bostone Nov 04 '09 at 05:39
  • 1
    No problem... it was something I'd been meaning to play with anyhow :) I don't think you can simulate the alt key, but again, I could be wrong. It should be noted that it's possible to implement your own keyboard (more or less) from scratch. They have an example: http://developer.android.com/guide/samples/SoftKeyboard/index.html – Jeremy Logan Nov 04 '09 at 21:28
  • 1
    Understand. Though implementing full custom keyboard is perhaps a little bit too much for my humble app :) – Bostone Nov 04 '09 at 22:51
1

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.

Chas
  • 11
  • 1