int maxLength = 20;
private String blockCharacterSet = "~#^|$%'&*!;";
private InputFilter filter = new InputFilter()
{
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
{
if (source != null && blockCharacterSet.contains(("" + source))) {
return "";
}
return null;
}
};
这里只有一个过滤器正在运行blockCharacterSet或最大长度:
EditText etname;
etname.setFilters(new InputFilter[] { filter });
etname.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLength)});
有人可以帮我一次设置上面两个过滤器吗?
答案 0 :(得分:8)
如果您有两个inputFilters,请将其添加到数组中,如下所示:
etname.setFilters(new InputFilter[] {
new InputFilter.LengthFilter(maxLength), filter});
最后setFilter()
采用了一系列输入过滤器,因此在setFilters()
中创建的数组中应该包含所有输入过滤器。