限制Android EditText中的字符

限制Android EditText中的字符,android,Android,我必须限制特定编辑文本的字符。为此,我正在使用 android:digits=“abcdefghijklmnopqrstuvwxyz012456789”在XML中,但如果我使用此选项,我无法在软键盘上获得下一步按钮,尽管我显示了android:imeOptions=“actionNext”。它总是在软键盘上完成的。因此,我删除了这些数字,并在XML中使用了android:inputType=“textCapCharacters”,希望使用输入过滤器以编程方式限制字符。我该怎么做 可能吗?如果是,

我必须限制特定编辑文本的字符。为此,我正在使用
android:digits=“abcdefghijklmnopqrstuvwxyz012456789”
在XML中,但如果我使用此选项,我无法在软键盘上获得下一步按钮,尽管我显示了android:imeOptions=“actionNext”。它总是在软键盘上完成的。因此,我删除了这些数字,并在XML中使用了
android:inputType=“textCapCharacters”
,希望使用输入过滤器以编程方式限制字符。我该怎么做

可能吗?如果是,如何使用输入过滤器仅限制“ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”

试试这个

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;
  }
};
试试这个

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;
  }
};
将其添加到string.xml中

<string name="my_regex">ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789</string>
abcdefghijklmnopqrstuvxyz012456789
在XML中:

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

将其添加到string.xml中

<string name="my_regex">ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789</string>
abcdefghijklmnopqrstuvxyz012456789
在XML中:

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


完美,但XML中的最大长度不起作用。我把它定为10。现在我能打10多个字了。怎么解决?太好了。谢谢完美,但XML中的最大长度不起作用。我把它定为10。现在我能打10多个字了。怎么解决?太好了。谢谢