700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android 实现限制EditText输入文字的数量

Android 实现限制EditText输入文字的数量

时间:2020-06-17 15:49:24

相关推荐

Android 实现限制EditText输入文字的数量

前段时间比较忙 没来的及时分享出来.需求是这样的要求用户只能输入12个字符或者6位中文的数据:作为一个菜鸟遇到这样的问题第一反应就是Android:maxLength="12"这么个属性然而去测试发现中文也是十二个的瞬间被上司叫过去就是一顿说。没办法还得改方法可是作为菜鸟的我只知道这一个方法;只能去百度了打开百度以后发现大部分方法都是一样都是用editText.addTextChangedListener()这个方法处理的;可是作为菜鸟的我对于这方法还是不熟悉于是运行过程中出现了各种问题。。几近周折还是没解决,时间实在赶没办法换个方法于是找到了这个方式editText.setFilters( new InputFilter[]{new InputFilter.LengthFilter(MAX_LENGTH) });一开始也是一对问题直到在/html/06/03/16568.html网站找到了这么个方法

InputFilter filter = new InputFilter() { public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { for (int i = start; i < end; i++) { if ( !Character.isLetterOrDigit(source.charAt(i)) && !Character.toString(source.charAt(i)) .equals("_") && !Character.toString(source.charAt(i)) .equals("-")) { return ""; } } return null; } };

但是看不懂也不知道是什么意思啊一开始没有管。。问题没解决找了个大牛询问最终得到了结果如下: // 这个方法,返回空字符串,就代表匹配不成功,返回null代表匹配成功 public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) 经过大牛的提点算是奔着完成任务写代码的方式实现了最终的需求代码如下:

mEditText.setFilters(new InputFilter[]{new InputFilter() {// 这个方法,返回空字符串,就代表匹配不成功,返回null代表匹配成功 @Overridepublic CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) {// 获取字符个数(一个中文算2个字符)if (getTextLength(dest.toString())+ getTextLength(source.toString()) >= MAX_LENGTH) {return "";}return null;}}});

getTextLength(String text);方法

/*** 获取字符数量 汉字占2个,英文占一个** @param text* @return*/public static double getTextLength(String text) {double length = 0;for (int i = 0; i < text.length(); i++) {// text.charAt(i)获取当前字符是的chart值跟具ASCII对应关系255以前的都是英文或者符号之等而中文并不在这里面所以此方法可行</span>if (text.charAt(i) > 255) {length += 2;} else {length++;}}return length;}

[html]view plain copy print ? mEditText.setFilters(newInputFilter[]{newInputFilter(){//这个方法,返回空字符串,就代表匹配不成功,返回null代表匹配成功@OverridepublicCharSequencefilter(CharSequencesource,intstart,intend,Spanneddest,intdstart,intdend){//获取字符个数(一个中文算2个字符)if(getTextLength(dest.toString())+getTextLength(source.toString())>=MAX_LENGTH){return"";}returnnull;}}});

getTextLength(String text);方法[html]view plain copy print ? /***获取字符数量汉字占2个,英文占一个**@paramtext*@return*/publicstaticdoublegetTextLength(Stringtext){doublelength=0;for(inti=0;i<text.length();i++){[html]view plain copy print ? <spanstyle="white-space:pre"></span>//<spanstyle="font-family:'MicrosoftYaHei',微软雅黑,'MicrosoftJhengHei',华文细黑,STHeiti,MingLiu;">text.charAt(i)获取当前字符是的chart值跟具ASCII对应关系255以前的都是英文或者符号之等而中文并不在这里面所以此方法可行</span>if(text.charAt(i)>255){length+=2;}else{length++;}}returnlength;} 代码还有进步的空间有什么问题请及时提出顶 0 踩 0 上一篇android 关于屏幕适配下一篇android 数据存储技术(1/4)android中sharedPreferences

我的同类文章

android(8) •Android 继承SwipeRefreshLayout添加上拉加载事件-10-10阅读128•android 小米手机弹出框(自定义dialog)位置不居中解决方法-07-31阅读494•android 数据存储技术(1/4)androidSQLite数据库存储-05-05阅读105•android 数据存储技术(1/4)android中sharedPreferences-04-24阅读155 •Android ViewPager多页面滑动切换以及动画效果-07-31阅读136•android 数据存储技术(1/4)android中网络存储-05-05阅读96•android 数据存储技术(1/4)文件存储-04-24阅读159•android圆形头像的选择和剪切并存储出圆形图片-03-04阅读775

参考知识库

Android知识库

20802关注|1808收录

猜你在找 Android自动化测试第一季(基础篇) Android自动化测试第二季(提高篇) Android无障碍测试环境搭建和使用技巧 Android自动化测试第三季 手把手做安卓应用开发 AndroidEditText限制文字输入 限制Android的EditText输入文字时换行 Android中限制EditText输入框文字输入长度 android如何改变editText控件中部分文字的格式 Android开发技术点1Fragment中EditText文字的记忆性查看评论

暂无评论

发表评论 用 户 名:firelightdragon 评论内容: * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 文章搜索 文章分类 android(9) 文章存档 10月(1)07月(2)05月(2)04月(3)03月(2) 推荐文章 * 程序员10月书讯,评论得书* Android中Xposed框架篇---修改系统位置信息实现自身隐藏功能* Chromium插件(Plugin)模块(Module)加载过程分析* Android TV开发总结--构建一个TV app的直播节目实例* 架构设计:系统存储--MySQL简单主从方案及暴露的问题

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。