实现InputFilter过滤器,需要覆盖一个叫filter的方法。
public abstract CharSequence filter ( CharSequence source, int start, int end,Spanned dest, int dstart,int dend);
source, //输入的文字 start, //输入的文字 end, //结束位置
用键盘输入source则为单个字符,start为0,end为1;粘帖时source为一串字符。
dest, //当前显示的内容
dstart, //当前开始位置 dend //当前结束位置
<span style="font-family:Times New Roman;font-size:14px;">import android.text.Spanned; EditText editText2=(EditText) findViewById(R.id.editText2);
editText2.setFilters(new InputFilter[]{
<span style="white-space:pre"> </span>new InputFilter.LengthFilter(5), <span style="white-space:pre"> </span>//最大能输入5个字符
<span style="white-space:pre"> </span>new InputFilter.AllCaps(), <span style="white-space:pre"> </span>//将所有输入的小写字母变成大写字母
<span style="white-space:pre"> </span>new InputFilter() { <span style="white-space:pre"> </span>//设置自己的filter
<span style="white-space:pre"> </span>public CharSequence filter(CharSequence source, int start, int end, Spanned dst, int dstart, int dend) {
<span style="white-space:pre"> </span>if("1".equals(source.toString())){
<span style="white-space:pre"> </span>return "一";
<span style="white-space:pre"> </span>}else if("2".equals(source.toString())){
<span style="white-space:pre"> </span>return "二";
<span style="white-space:pre"> </span>}else{
<span style="white-space:pre"> </span>return null;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
});</span>