EditText在安卓中是经常需要用到的。但是简单的EditText实际开发中的很难满足产品的需求,比如微信输入金额的EditText,里面对输入额度的限制有很多,如,保存小数点后两位,第一个数字为0的时候,后面只能输入“.”,这个时候,EditText 的InputType是没法满足这样的需求,所以我们就要借助于InputFilter。
其他需求例如:过滤一些敏感的字眼,他的使用方法如下
创建一个类 implements InputFilter接口 需要重写其中的一个方法
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { return null; }
这个方法中的参数代表具体如下:
source 新输入的字符串
start 新输入的字符串起始下标,一般为0
end 新输入的字符串终点下标,一般为source长度-1
dest 输入之前文本框内容
dstart 原内容起始坐标,一般为0
dend 原内容终点坐标,一般为dest长度-1
这里拿“高仿微信输入框”举个例子
- package com.iscs.mobilewcs.tools;
- import android.text.InputFilter;
- import android.text.Spanned;
- import android.text.TextUtils;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * Created by Jackie on 2017/2/22.
- * 过滤用户输入只能为金额格式
- */
- public class CashierInputFilter implements InputFilter {
- Pattern mPattern;