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