Android EditText限制输入长度
1、在 xml 文件中设置文本编辑框属性作字符数限制
比如手机号长度限制:
android:maxLength="11"
即限制最大输入字符个数为11
2、通过EditText的inputfilter来做限制
mEt_phonenum.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 11 )});
3、通过EditText的变化监听器
@Override
public void afterTextChanged(Editable s) {
if (s.length()>=11){
int selectionEnd = mEt_phonenum.getSelectionEnd();
s.delete(11, selectionEnd);
}else {
mEt_phonenum.setEnabled(true);
}
}
一开始用的是这个方法,但是如果把输入框光标移动到输入字符的中间,再输入字符会出异常角标越界,
是这一段代码的问题
int selectionEnd = mEt_phonenum.getSelectionEnd();
s.delete(11, selectionEnd);
所以这个方法谨慎使用。