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限制字符数
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 概述InputFilter是系统提供的一个接口,里面只有一个方法filter(),用于过滤输入/插入的字符串,返回...
- 布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通...
- Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字...
- 黑色的海岛上悬着一轮又大又圆的明月,毫不嫌弃地把温柔的月色照在这寸草不生的小岛上。一个少年白衣白发,悠闲自如地倚坐...