我一直在寻找答案,但我似乎无法找到答案。
我是否可以阻止用户更改我创建的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键盘,而不是别的。
答案 0 :(得分:2)
据我所知,不可能强迫用户在您的应用程序中使用特定的系统键盘(参考:android app specific soft keyboard)。不过,该引用确实向您展示了如何创建自己的引用。创建一个在EditText
聚焦时弹出的视图会为用户提供一组数字并不是非常困难。
您还可以在android:digits="0123456789"
中设置EditText
属性,以禁止输入其他字符。