开发者

Enforcing Input Method of Edit Text

开发者 https://www.devze.com 2023-03-11 06:52 出处:网络
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? Curr

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 s开发者_如何学Pythontarts 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.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号