使用InputFilter来过滤非英文字符和特殊字符。
示例代码如下:
EditText editText = findViewById(R.id.edit_text);
InputFilter filter = (source, start, end,
dest, dstart, dend) -> {
for (int i = start; i < end; i++) {
char c = source.charAt(i);
if (!Character.isLetterOrDigit(c) && !Character.isSpaceChar(c)) {
return "";
}
}
return null;
};
editText.setFilters(new InputFilter[] { filter });
这段代码中,我们首先获取到EditText控件,然后定义了一个InputFilter,该过滤器的作用是将非英文字符和特殊字符过滤掉。我们将该InputFilter设置到EditText控件中即可实现阻止其他类型键盘的效果。