Android EditText强制使用数字键盘,但允许非数字字符。

8

我需要维护一个可以让用户输入数字的EditText,有时我需要将EditText的文本设置为类似于12$之类的内容。因此,我需要能够使用setText()设置任何我想要的文本。

我尝试设置input type为数字的EditText,这会产生数字键盘,并删除该EditTextInputFilter - 但仍无法允许我放置非数字字符。

input.setFilters(new InputFilter[] {});

我做错了什么吗?有没有其他方法来实现我的目标,即在EditText中插入一些非数字字符的数字键盘?

3个回答

12

这将保持数字不变,但允许$字符,将任何其他所需的特殊字符添加到android:digits属性中。

<EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:digits="0123456789,$">

FYI:android:digits="0,1,2,3,4,5,6,7,8,9, "。空格同样有效(请参见末尾的空格!)。 - Ed Manners

2

补充aviran的回答。如果在字符串中加入任何“,”,则还将允许EditText中出现逗号。

下面的代码将仅允许0-9和$。

<EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" android:digits="0123456789$">


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接