et.setFilters(new InputFilter[]{new LengthFilterUtil(18)});
public class LengthFilterUtil implements InputFilter {
private final int maxLength;
public LengthFilterUtil(int max) {
maxLength = max;
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
// 输入内容是否超过设定值,最多输入五个汉字10个字符
if (getTextLength(dest.toString()) + getTextLength(source.toString()) > maxLength) {
// 输入框内已经有10个字符则返回空字符
if (getTextLength(dest.toString()) >= 10) {
return "";
// 如果输入框内没有字符,且输入的超过了10个字符,则截取前五个汉字
} else if (getTextLength(dest.toString()) == 0) {
return source.toString().substring(0, 5);
} else {
// 输入框已有的字符数为双数还是单数
if (getTextLength(dest.toString()) % 2 == 0) {
return source.toString().substring(0, 5 - (getTextLength(dest.toString()) / 2));
} else {
return source.toString().substring(0, 5 - (getTextLength(dest.toString()) / 2 + 1));
}
}
}
return null;
}
public static int getTextLength(String text) {
int length = 0;
for (int i = 0; i < text.length(); i++) {
if (text.charAt(i) > 255) {
length += 2;
} else {
length++;
}
}
return length;
}
}
Android edittext限制字符数
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 概述InputFilter是系统提供的一个接口,里面只有一个方法filter(),用于过滤输入/插入的字符串,返回...
- 布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通...
- Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字...