如何只允许edittext中的特定数字?

时间:2016-03-31 15:43:17

标签: android android-edittext numbers

我想在我的编辑文字中只放一个特定的值。 我用过这个我的布局。          android:digits="0123468" 但是,我也不希望编号1和3在我的编辑文本中起作用。

示例;输入32 ...它给了我一个项目列表 但输入3不应该让我做某事。

有人可以帮我吗?

2 个答案:

答案 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);
      }
}