强制编辑文本的输入法

时间:2011-06-06 19:21:10

标签: android

我一直在寻找答案,但我似乎无法找到答案。

我是否可以阻止用户更改我创建的edittext的输入法?目前我有一个edittext,我只想通过显示类似于手机键盘输入的软键盘来接受用户的号码。通过在XML中声明以下内容:

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

并且还将自定义DigitsKeyListener附加到在getInputType方法中返回InputType.TYPE_CLASS_PHONE的edittext,我已经成功地使edittext只接受十进制数字以及使用我想要的软键盘。

但是,如果用户未使用默认的Android键盘,则会出现此问题。如果用户已将其输入方法更改为自定义键盘或某些语言环境(如日语IME),则显示的软键盘将无法满足我的应用目的。

这可以通过长时间保持edittext并选择不同的输入法来实现,或者在另一个应用程序中更改它也会影响我的应用程序。

我的问题是,有什么方法可以防止在我的应用程序中使用其他输入法吗?我希望我的应用程序始终使用默认的Android键盘,而不是别的。

1 个答案:

答案 0 :(得分:2)

据我所知,不可能强迫用户在您的应用程序中使用特定的系统键盘(参考:android app specific soft keyboard)。不过,该引用确实向您展示了如何创建自己的引用。创建一个在EditText聚焦时弹出的视图会为用户提供一组数字并不是非常困难。

您还可以在android:digits="0123456789"中设置EditText属性,以禁止输入其他字符。