限制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多个字了。怎么解决?太好了。谢谢