EditText 文本内容输入限制

时间:2023-03-09 01:35:38
EditText 文本内容输入限制

实现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>