我想在我的编辑文字中只放一个特定的值。
我用过这个我的布局。
android:digits="0123468"
但是,我也不希望编号1和3在我的编辑文本中起作用。
示例;输入32 ...它给了我一个项目列表 但输入3不应该让我做某事。
有人可以帮我吗?
答案 0 :(得分:1)
这可能是一种方法:
<EditText
android:id="@+id/edtNumber"
android:digits="0123456789"
android:inputType="number" />
如果你想丢弃&#39; 1&#39;和&#39; 3&#39;你可以得到这样的输入数字:
Integer.parseInt(edtNumber.getText().toString())
并将其与您不想要的值进行比较。
如果由于某种原因你想使用小数,请执行以下操作:
<EditText
android:id="@+id/edtNumberDecimal"
android:digits="0123456789."
android:inputType="numberDecimal" />
答案 1 :(得分:1)
使用正则表达式。
@Override
public void afterTextChanged(Editable s) {
String text = s.toString();
int length = text.length();
Pattern pattern
= Pattern.compile("(?s)\\d|[024-9]{2,}");
if(length > 0 && !Pattern.matches(pattern, text)) {
s.delete(length - 1, length);
}
}