android edittext进行字符限制
来源:互联网 发布:大疆通信算法工程师 编辑:程序博客网 时间:2024/06/01 09:35
根据需求,对昵称进行20个字符的限制,一个汉字占两个字符,一个字母占一个字符,当已经输入19个字符的时候,不可以输入汉字,但是还可以输入一个字母。如果输入超过20个字符,进行截取20个字符。以下是网上大神的工具类,我这边根据自己需求修改。(其中的20个可以随意的修改)
1.这是个工具类
public class NameLengthFilter implements InputFilter { int MAX_EN;// 最大英文/数字长度 一个汉字算两个字母 String regEx = "[\\u4e00-\\u9fa5]"; // unicode编码,判断是否为汉字 public NameLengthFilter(int mAX_EN) { super(); MAX_EN = mAX_EN; } @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { int destCount = dest.toString().length() + getChineseCount(dest.toString()); int sourceCount = source.toString().length() + getChineseCount(source.toString()); String name = ""; int count = 0; int i = 0; if (destCount + sourceCount > MAX_EN) { if (destCount < MAX_EN) { while (!(destCount + count >= MAX_EN)) { ++i; name = source.subSequence(0, i).toString(); count = name.toString().length() + getChineseCount(name.toString()); if (destCount + count > MAX_EN) { --i; } } return i == 0 ? "" : source.subSequence(0, i).toString(); } return ""; } else { return source; } } private int getChineseCount(String str) { int count = 0; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); while (m.find()) { for (int i = 0; i <= m.groupCount(); i++) { count = count + 1; } } return count; }}
2.在需要的地方只需要添加上这两句即可(其中的et_hotel_user_name是你自己的edittext):
InputFilter[] filters = {new NameLengthFilter(20)};
et_hotel_user_name.setFilters(filters);
0 0
- android edittext进行字符限制
- android editText 字符长度限制
- Android EditText 字符个数限制[转]
- android控件EditText限制指定字符输入
- android 限制edittext 最大输入字符数
- 限制EditText输入字符
- Android EditText 特殊字符过滤和字符输入长度限制
- android 中如何限制 EditText 最大输入字符数
- android 中如何限制 EditText 最大输入字符数(2)
- android 中如何限制 EditText 最大输入字符数
- android 中如何限制 EditText 最大输入字符数
- android 中如何限制 EditText 最大输入字符数
- android 中如何限制 EditText 最大输入字符数
- android 中如何限制 EditText 最大输入字符数
- android 中如何限制 EditText 最大输入字符数
- android开发(十六) 如何限制 EditText 最大输入字符数
- Android EditText限制输入一些固定字符的属性
- android 中如何限制 EditText 最大输入字符数
- mysql只explain 是一种美德(sql性能优化)
- HTML 根据元素属性的选择性显示与隐藏
- 2016年10月11号 完善NVR端ONVIF异步事件
- Android : Thread, handler, messagequeue, message, Looper 的交互。
- 小轮软件的用户体验提升
- android edittext进行字符限制
- Jenkins安装及使用
- iOS获取通讯录联系人信息
- 用Visio绘制switch-case流程图
- 关键字
- Android 原生条目刷新之SwipeRefreshLayout
- NSFileManager
- 客户端扫码登录功能的实现思路
- mysql 将查询结果插入一张表