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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐