可以使用InputFilter来实现。InputFilter是Android提供的一种过滤器,可以用来限制EditText输入的字符类型,比如只允许输入数字、字母或者汉字等。
定义InputFilter
InputFilter filterChinese = 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 (Character.isSpaceChar(source.charAt(i))) { return ""; } if (!Character.isLetterOrDigit(source.charAt(i))) { return ""; } } return null; } };
设置InputFilter
EditText editText = findViewById(R.id.edit_text); // 设置EditText的InputFilter,以限制输入中文 editText.setFilters(new InputFilter[]{filterChinese});
测试
- 输入中文,应该不能输入成功
- 输入英文或数字,应该可以输入成功