我有一个EditText,它应该禁止输入特定的字母。我创建了一个带有可接受数字的变量字符串,如下所示:<string name="accepted_digits">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&-,\'</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
,但我希望允许自动提示。
感谢任何帮助。
答案 0 :(得分:1)
您正在将characters
与digits
混合。数字是具有数值的字符,而字符可以是任何数字。要解决此问题,您无法使用android:digits
,但可以使用TextWatcher
。见Android: How can I validate EditText input?