有时候我们需要限制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});

}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐