Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android EditText inputType属性似乎工作不正确_Android_Android Edittext_Android Inputtype - Fatal编程技术网

Android EditText inputType属性似乎工作不正确

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属性设置为number(android:inputType=“number”)并像这样设置digits属性时,android:digits=“0123456789”。输入事件按预期正常工作。即仅以数字形式接收输入


当我将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"