我像这样使用InputFilter,只允许字母和数字
private InputFilter[] inputFilters = new InputFilter[] { new InputFilter()
{
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
{
for (int i = start; i < end; ++i)
{
if (!Pattern.compile("[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890]*").matcher(String.valueOf(source.charAt(i))).matches())
{
return "";
}
}
return null;
}
} };
但问题是xml文件中的"android:maxLength“值不适用于此InputFilter
我想我需要InputFilter中的代码来设置EditText的最大长度
有人对此有好主意吗?
谢谢
发布于 2017-07-05 14:46:42
一个简单的一行代码是:
myEditText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(10) });
//replace 10 with required length.
发布于 2015-01-16 17:38:17
public void setEditTextMaxLength(int length) {
InputFilter[] filterArray = new InputFilter[1];
filterArray[0] = new InputFilter.LengthFilter(length);
edt_text.setFilters(filterArray);
}
发布于 2015-05-12 11:39:12
在@Deepak的基础上,我使用了以下代码:
public void setEditTextMaxLength(final EditText editText, int length) {
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(length);
editText.setFilters(FilterArray);
}
https://stackoverflow.com/questions/24749833
复制相似问题