限制Android EditText中的字符

时间:2018-04-23 02:38:22

标签: android

我必须限制特定EditText的字符。为此,我正在使用   XML中的android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "但是如果我使用它,尽管我显示了android:imeOptions =“actionNext”,但我无法在软键盘上获得下一个按钮。它总是在软键盘上完成。所以我删除了数字,我在XML中使用android:inputType="textCapCharacters",并希望使用INPUT FILTERS以编程方式限制字符。我该怎么做?

有可能吗?如果是这样如何使用INPUT FILTERS仅限制“ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”?

2 个答案:

答案 0 :(得分:1)

试试这个

InputFilter filter = new InputFilter() {
  public CharSequence filter(CharSequence source, int start, int end,
        Spanned dest, int dstart, int dend) {

      if(source.length() > 10) return "";
      else{
        for (int i = start; i < end; i++) {
            if (!Character.isLetterOrDigit(source.charAt(i)) && !Character.isSpaceChar(source.charAt(i))) {
                return "";
            }
        }
      }

      return null;
  }
};

然后将其设置为editext

myEditxt.setFilters(new InputFilter[] { filter });

答案 1 :(得分:0)

在string.xml中添加

<string name="my_regex">ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789</string>

在XML中:

 <EditText
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:digits="@string/my_regex"
 />