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?
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?
give
android:inputType="number"
inside your xml file
Edit: "Number" does not work, changed to "number" (lowercase N)
a) in xml
android:numeric="decimal"
b) in code
EditText editView = new EditText(this);
editView.setKeyListener(new DigitsKeyListener());
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.
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();
}
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"
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 );
© 2022 - 2024 — McMap. All rights reserved.