Android InputFilter可以實現特殊字符過濾,通過自定義InputFilter類,可以控制用戶輸入的文本內容,在filter方法中判斷輸入的字符是否為特殊字符,如果是特殊字符則過濾掉,不允許輸入。
下面是一個示例代碼,實現了過濾特殊字符的功能:
public class SpecialCharacterFilter implements InputFilter {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
char c = source.charAt(i);
if (!Character.isLetterOrDigit(c) && !Character.isSpaceChar(c)) {
// 過濾特殊字符
return "";
}
}
return null;
}
}
在這個示例中,我們實現了一個SpecialCharacterFilter類,重寫了filter方法,判斷輸入的字符是否為字毋、數字或空格,如果是則允許輸入,否則過濾掉。
使用這個InputFilter可以在EditText中設置,示例代碼如下:
EditText editText = findViewById(R.id.edit_text);
InputFilter[] filters = {new SpecialCharacterFilter()};
editText.setFilters(filters);
通過上述代碼,我們將SpecialCharacterFilter應用到EditText中,用戶輸入時會自動過濾掉特殊字符。