0

I've tried searching around for an answer to this but I can't seem to find an answer.

Is it possible for me to prevent a user from changing the input method of an edittext that I have created? Currently I have an edittext which I would like to only accept numbers from the user by displaying a soft keyboard similiar to the phone keypad input. By declaring the following in XML :

    <EditText 
    android:layout_height="wrap_content"    
    android:layout_width="fill_parent"    
    android:singleLine="true"     
    android:inputType="phone"
    android:numeric="decimal"       
    />

And also attaching a custom DigitsKeyListener to the edittext that returns InputType.TYPE_CLASS_PHONE in the getInputType method, I have succesfully made the edittext only accept decimal numbers as well as use the soft keyboard that I want.

The problem however starts if the user is not using the default Android Keyboard. If the user has changed their input method to a custom keyboard or to certain locales such as the Japanese IME, the soft keyboard that is shown becomes lacking for my application's purpose.

This can be achieved by long holding on the edittext and selecting a different input method, or changing it in another application will also affect my application.

My question is, is there any possible way for me to prevent other Input Methods from being used in my application? I want my application to always use the default Android Keyboard, and nothing else.

Coins
  • 576
  • 5
  • 12

1 Answers1

2

As far as I know, it's not possible to force a user to use a specific system keyboard inside your application (reference: android app specific soft keyboard). That reference does show you how to create your own, though. It wouldn't be terribly difficult to create a View that pops up when the EditText is focused that provides the user with a set of numbers.

You can also set the android:digits="0123456789" attribute in your EditText to disallow other characters from being entered.

Community
  • 1
  • 1
Glendon Trullinger
  • 4,052
  • 1
  • 28
  • 35
  • Hello Glendon, thanks for the response. I have seen the reference and understand that it is not possible to define your own custom soft keyboard in an application other than the way mentioned. However, I was wondering if it is possible to perhaps limit the type of soft keyboards (keyboards which already exist within the system) that the user can choose within an application. Searching around, it looks like this may not be possible after all.. – Coins Jun 07 '11 at 08:29