Reputation: 4467
I read several other posts and using input.setInputType(TYPE_NUMBER_FLAG_DECIMAL); does open the keyboard but its not the numeric keyboard
Is there a trick to this?
Upvotes: 24
Views: 41281
Reputation: 544
Here's how to do it totally programmatically. As you need to show the numeric keyboard, you should technically set the inputType
as a number
inside the XML layout. But since you don't have the XML layout, you need to setup the corresponding flags programmatically. Here's what the documentation says about the number
flag:
<!-- A numeric only field. Corresponds to
{@link android.text.InputType#TYPE_CLASS_NUMBER} |
{@link android.text.InputType#TYPE_NUMBER_VARIATION_NORMAL}. -->
<flag name="number" value="0x00000002" />
so in order to have the same behaviour you need to do what's below:
mEditText.setInputType( InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL );
Upvotes: 0
Reputation: 122
I found two easy ways to do it, add one of them to EditText block in XML file:
android:inputType="phone"
android:digits="1234567890"
android:inputType="number"
Upvotes: 0
Reputation: 6165
To pop up a numeric keyboard on start of the activity i used following steps:
Created edit text field in layout as:
<EditText
...
android:inputType="number"
... />
In function onCreate() show soft keyboard
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
Most important is to give focus to edit text in onResume method.
@Override
public void onResume() {
super.onResume();
editText.setFocusableInTouchMode(true);
editText.requestFocus();
}
Upvotes: 3
Reputation: 1227
In your xml, you have to do this:
android:inputType="Number"
In your code, do:
editText.requestFocus();
Then:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
Took me many days to figure this out. I even tried editText.performClick(); Not working.
Upvotes: 9
Reputation: 9479
give
android:inputType="number"
inside your xml file
Edit: "Number" does not work, changed to "number" (lowercase N)
Upvotes: 26
Reputation: 141
a) in xml
android:numeric="decimal"
b) in code
EditText editView = new EditText(this);
editView.setKeyListener(new DigitsKeyListener());
Upvotes: 14