Tawani
Tawani

Reputation: 11208

Does android have a numeric keypad?

Is there a way in android to invoke a numeric only keypad, i.e. a virtual keypad that contains only the numbers 0 to 9 and a "." sign?

Upvotes: 13

Views: 24158

Answers (5)

Munish Thakur
Munish Thakur

Reputation: 1

<EditText android:numeric="decimal" />

only does not affect keypad to convert into decimal. Instead, use:

  <EditText android:inputType="phone" android:numeric="decimal"></EditText>

This will show the numeric keypad only.

Upvotes: 0

Soups Ranjan
Soups Ranjan

Reputation: 11

Make sure you only have: <EditText android:numeric="decimal" />

and not both: <EditText android:numeric="decimal" android:digits="0123456789." />

The latter, ie using both numeric and digits was not working for me. However, using only numeric works.

Upvotes: 1

Mark F Guerra
Mark F Guerra

Reputation: 922

If you're talking about restricting input to 0-9 + "." for an EditText box, I use the android:numeric="decimal" attribute in the layout XML.

<EditText android:numeric="decimal" />

If you're working with dynamically generated EditText views, the relevant method to call on it is setKeyListener()

Upvotes: 6

Dimitar Dimitrov
Dimitar Dimitrov

Reputation: 16367

Basically, you need what Peter Boughton said.

More generally, if you need to invoke different type of keyboard, depending on the input you expect on your EditText component, you should use the IMF (Input Media Framework) and different IMEs (Input Media Editors).

You can customize not only the input symbols, but also the layout of the keyboard in your application, auto-completion and other options.

You may want to read this post in the Android Developers Blog: Updating Applications for On-screen Input Methods

Upvotes: 6

Peter Boughton
Peter Boughton

Reputation: 112230

Try doing android:inputType="phone" ?

Upvotes: 26

Related Questions