How to show the numeric keypad

2019-03-12 06:32发布

问题:

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?

回答1:

give android:inputType="number" inside your xml file

Edit: "Number" does not work, changed to "number" (lowercase N)



回答2:

a) in xml

android:numeric="decimal"

b) in code

EditText editView = new EditText(this);
editView.setKeyListener(new DigitsKeyListener());


回答3:

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.



回答4:

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();
    }