时间:2021-08-01 08:55:35 | 栏目:Android代码 | 点击:次
有时候我们需要限制EditText输入的字符类型,如空格,特殊字符等,这时候我们可以使用系统提供的输入过滤器――InputFilter。具体实现如下:
/** * 禁止EditText输入空格 * @param editText */ public static void setEditTextInhibitInputSpace(EditText editText){ InputFilter filter=new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if(source.equals(" ")return ""; else return null; } }; editText.setFilters(new InputFilter[]{filter}); } /** * 禁止EditText输入特殊字符 * @param editText */ public static void setEditTextInhibitInputSpeChat(EditText editText){ InputFilter filter=new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String speChat="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()――+|{}【】‘;:”“'。,、?]"; Pattern pattern = Pattern.compile(speChat); Matcher matcher = pattern.matcher(source.toString()); if(matcher.find())return ""; else return null; } }; editText.setFilters(new InputFilter[]{filter}); }