Android EditText inputType属性似乎工作不正确
当我将inputType属性设置为number(android:inputType=“number”)并像这样设置digits属性时,android:digits=“0123456789”。输入事件按预期正常工作。即仅以数字形式接收输入Android EditText inputType属性似乎工作不正确,android,android-edittext,android-inputtype,Android,Android Edittext,Android Inputtype,当我将inputType属性设置为number(android:inputType=“number”)并像这样设置digits属性时,android:digits=“0123456789”。输入事件按预期正常工作。即仅以数字形式接收输入 当我将inputType属性设置为textPersonName(android:inputType=“textPersonName”)并像这样设置digits属性时,android:digits=“0123456789” <?xml version="
当我将inputType属性设置为textPersonName(android:inputType=“textPersonName”)并像这样设置digits属性时,android:digits=“0123456789”
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editText"
android:digits="0123456789"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="68dp" />
</LinearLayout>
输入事件未按预期正常工作。就是
- 键入1时,编辑文本显示1
- 当我继续键入b时,EditText显示112
- 当我继续用3输入时,EditText显示112123
- 当我继续输入4时,EditText显示1121234。
原因是什么?您可以对edittext中的特定字符使用输入筛选器,您只能允许显示您想要显示的字符 通过此链接查看我的答案:
一旦它看起来像是特定于设备的问题,请尝试此操作 文本输入类型的数字是无效的组合。digits表示将采用数字类型 至于奇怪的输入——我猜是键盘和编辑文本之间对文本完成状态的误解。当我编写键盘时,当编辑文本试图覆盖我键入的内容时,我看到了类似的错误——它导致提交文本完成,因为它看起来像光标移动了一样。Android键盘API确实需要大修
android:digits="0123456789"
该属性实际上是做什么的?
您曾经指定为android:inputType
的输入类型并不重要。仅此EditText
接受的数字才重要。如果设置为,则它将指定这有一个数字输入方法,并且这些特定字符是它将接受的字符,在您的情况下为(0-9)。而数字意味着是真的。默认值为false
因此,如果您不想发生这种情况,您应该删除这一行。从两个编辑文本中删除digits属性您在寻找带数字的人名吗?您到底想要什么?很抱歉没有附加屏幕截图。我很想知道这种行为。
android:digits="0123456789"