views:

301

answers:

2

I don't want to show the virtual keyboard.

I tried the below method but it doesn't make any difference.

InputMethodManager imm =     InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(enter_count.getWindowToken(), 0);

enter_count is my edit text I have tried reading up on the InputMethod Manager but can't follow it.

I can set the input type of my edit text called enter_count as follows

enter_count.setInputType( InputType.TYPE_NULL );

but then I can't specify to only accept numeric input

Can you please give me a reasonable solution to simply not show the virtual keyboard without losing the ability to only accept numeric input on the physical keyboard.

A: 

Hey,

you have to use this in your AndroidManifest.xml file

So add

android:configChanges="orientation|keyboardHidden"

But with that your keyboard will always be hidden in that Activity.

Wouter

wouter88
I tried your suggestion and android:configChanges="keyboardHidden"as well but neither made any difference
Michael McLean
+1  A: 

How about this?

EditText editText = (EditText) findViewById(R.id.edt_hello);

editText.setKeyListener(new NumberKeyListener() {

    @Override
    public int getInputType() {
        return InputType.TYPE_NULL;
    }

    @Override
    protected char[] getAcceptedChars() {
        return new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
    }
});
gyller
Thank you very much it worked perfectly.
Michael McLean
Then you should mark the answer as accepted
Guido