Android EditText限制输入长度
2011-12-22 22:50
459 查看
EditText可以通过Android:maxLength属性来限制输入的长度,但这是按照UNICODE来算的,当中英文混合时,想要限制输入长度为N个字符时就要通过InputFilter来实现了.
InputFilter inputFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
int dstart, int dend) {
// TODO Auto-generated method stub
try {
//转换成中文字符集的长度
int destLen = dest.toString().getBytes(“GB18030″).length;
int sourceLen = source.toString().getBytes(“GB18030″).length;
Log.e(“filter”, String.valueOf(destLen + sourceLen));
//如果超过100个字符
if (destLen + sourceLen > 100) {
return “”;
}
//如果按回退键
if (source.length() < 1 && (dend – dstart >= 1)) {
return dest.subSequence(dstart, dend – 1);
}
//其他情况直接返回输入的内容
return source;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return “”;
}
};
editText.setFilters(new InputFilters[] {inputFilter});
InputFilter inputFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
int dstart, int dend) {
// TODO Auto-generated method stub
try {
//转换成中文字符集的长度
int destLen = dest.toString().getBytes(“GB18030″).length;
int sourceLen = source.toString().getBytes(“GB18030″).length;
Log.e(“filter”, String.valueOf(destLen + sourceLen));
//如果超过100个字符
if (destLen + sourceLen > 100) {
return “”;
}
//如果按回退键
if (source.length() < 1 && (dend – dstart >= 1)) {
return dest.subSequence(dstart, dend – 1);
}
//其他情况直接返回输入的内容
return source;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return “”;
}
};
editText.setFilters(new InputFilters[] {inputFilter});
相关文章推荐
- Android中限制EditText(输入框)文字输入长度
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- android edittext 输入长度限制并提示
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- android EditText限制输入长度
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- Android EditText输入最大长度限制如何给用户以友好的提示
- Android EditText输入限制最大字符长度 和 限制只能输入数字和字母(包含大小写)
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- Android 限制EditText仅仅能输入数字、限制输入类型、限制输入长度的小技巧
- android edittext 输入长度限制并提示
- Android EditText限制文本输入的长度并给予提示
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- android 中限制EditText 最大输入字符数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android实现限制EditText输入文字的数量
- android 中如何限制 EditText 最大输入字符数
- Android中EditText输入字数统计和限制
- android中editText限制输入(小数和整数篇)