工具类
直接上代码
public class InputFilterUtil {
private static volatile InputFilterUtil mInputFilterUtil = null;
public static InputFilterUtil getInstance() {
InputFilterUtil inputFilterUtil = mInputFilterUtil; // 创建临时变量
if (inputFilterUtil == null) {
synchronized (InputFilterUtil.class) {
inputFilterUtil = mInputFilterUtil;
if (inputFilterUtil == null) {
inputFilterUtil = new InputFilterUtil();
mInputFilterUtil = inputFilterUtil;
}
}
}
return inputFilterUtil; // 这里返回的是临时变量
}
/**
* @Title: inputFilterSpace
* @Description: 输入框过滤空格和中文字符
* @param edit
* 控件
* @param MaxLength
* 控制最大长度
*/
public void filterSpaceAndChinese(EditText edit, int MaxLength) {
filterSpaceAndChinese(edit, MaxLength, true, true);
}
/**
* @Title: filterChinese
* @Description: 过滤中文字符
* @param edit
* 控件
* @param MaxLength
* 控制最大长度
*/
public void filterChinese(EditText edit, int MaxLength) {
filterSpaceAndChinese(edit, MaxLength, false, true);
}
/**
* @Title: filterSpace
* @Description: 过滤空格
* @param edit
* 控件
* @param MaxLength
* 最大长度
*/
public void filterSpace(EditText edit, int MaxLength) {
filterSpaceAndChinese(edit, MaxLength, true, false);
}
/**
* @Title: filterSpaceAndChince
* @Description: 输入框过滤
* @param edit
* 输入框
* @param MaxLength
* 最大长度
* @param isFilterSpace
* 过滤空格
* @param isFilterChinese
* 过滤中文字符
*/
private void filterSpaceAndChinese(EditText edit, int MaxLength,
final boolean isFilterSpace, final boolean isFilterChinese) {
edit.setFilters(new InputFilter[] {
new InputFilter.LengthFilter(MaxLength), new InputFilter() {
@Override
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
if (src.length() < 1) {
return null;
} else {
String content = new String(src.toString());
if (isFilterChinese) {// 过滤中文
content = content.replaceAll(
"[\u4E00-\u9FA5]|\t", "");
}
if (isFilterSpace) {// 过滤空格
content = content.replaceAll(" ", "");
}
return content;
}
}
} });
}
}