EditText意外行为

时间:2018-03-07 14:35:15

标签: android android-edittext

我有一个EditText,它应该禁止输入特定的字母。我创建了一个带有可接受数字的变量字符串,如下所示:<string name="accepted_digits">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&amp;-,\'</string>

我的EditText看起来像这样:

 <EditText
        android:id="@+id/test_editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:digits="@string/accepted_digits"
        />

现在,当我在accepted_digits字符串中键入一个接受的数字后跟任何数字时,会产生奇怪的行为,即

1st input = M |显示:M

2nd input = æ |显示:MM

3rd input = l |显示:MMMlMl

4th input = k |显示:MMMlMlMlk

我没有打算这种行为 - 我打算简单地跳过一个未接受的数字,所以我显示的输入将是:Mlk

我尝试过简单地将inputType更改为android:inputType="textVisiblePassword,但我希望允许自动提示。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您正在将charactersdigits混合。数字是具有数值的字符,而字符可以是任何数字。要解决此问题,您无法使用android:digits,但可以使用TextWatcher。见Android: How can I validate EditText input?