android EditText 限定中文个数与英文个数的解决方式
EditText 限定中文8个英文16个的解决方法。
在EditText上控件提供的属性中有限定最大最小长度的方法。
可是,对于输入时,限定中文8个英文16个时,怎么办?相当于一个中文的长度是两个英文的长度。
原理就不说了。自己看一下android的源代码。
以上直接上代码。
private final int maxLen = 16;
private InputFilter filter = new InputFilter() { @Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
int dindex = 0;
int count = 0; while (count <= maxLen && dindex < dest.length()) {
char c = dest.charAt(dindex++);
if (c < 128) {
count = count + 1;
} else {
count = count + 2;
}
} if (count > maxLen) {
return dest.subSequence(0, dindex - 1);
} int sindex = 0;
while (count <= maxLen && sindex < source.length()) {
char c = source.charAt(sindex++);
if (c < 128) {
count = count + 1;
} else {
count = count + 2;
}
} if (count > maxLen) {
sindex--;
} return source.subSequence(0, sindex);
} };
使用例如以下:
editText.setFilters(new InputFilter[]{filter});
android EditText 限定中文个数与英文个数的解决方式的更多相关文章
- HTML使用post方式提交中文内容出现乱码的错误解决方式
今天在做一个例子的时候,使用post方式提交表单,如果有中文的话,在另一个页面显示出来的时候,总是会出现乱码: 但是将提交方式改为get的时候,就不会出现这种错误. 详细错误见下面图片和代码. HTM ...
- Android Studio 错误: 非法字符: '\ufeff' 解决方式|错误: 须要class, interface或enum
在导入eclipse项目到Android Studio出现这种错误, 非法字符: '\ufeff' 解决方式|错误: 须要class, interface或enum.查阅后了解到Eclipse能够智能 ...
- java算法面试题:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 按值的降序排序,如果值相同则按键值的字母顺序
package com.swift; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; publi ...
- Android EditText输入字数限制总结(包含中文输入内存溢出的解决方法)
转载请注明,大飞:http://blog.csdn.net/rflyee/article/details/38856539 限定EditText输入个数的解决方式非常多,可是一般主要考虑两点.也就是处 ...
- 分享一个.NET(C#)按指定字母个数截断英文字符串的方法–提供枚举选项,可保留完整单词
分享一个.NET(C#)按字母个数截断英文字符串的方法,该方法提供枚举选项.枚举选项包括:可保留完整单词,允许最后一个单词超过最大长度限制,字符串最后跟省略号以及不采取任何操作等,具体示例实现代码如下 ...
- Android EditText属性
1.EditText输入的文字为密码形式的设置 (1)通过.xml里设置: 把该EditText设为:android:password="true" // 以”.”形式显示文本 ( ...
- Android EditText的使用及值得注意的地方
Android上有很多输入法应用,每种输入法都有各自的特点,输入法多数时候是和EditText配合使用,结合我自己的亲身实践分享一下使用EditText过程中遇到的一些问题及解决方法. 设置默认输入法 ...
- php截取中文字符串,英文字符串,中英文字符串长度的方法
今天学习了php函数截取中文字符串,英文字符串,中英文字符串的函数使用方法.对中英文截取方法不理解,此处先做记录. PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节 ...
- 软件工程-构建之法 WordCount小程序 统计文件中字符串个数,单词个数,词频,行数
一.前言 在之前写过一个词频统计的C语言课设,别人说你一个大三的怎么写C语言课程,我只想说我是先学习VB,VB是我编程语言的开始,然后接触到C语言及C++:再后来我是学习C++,然后反过来学习C语言, ...
随机推荐
- 用Thunderbird以HTML发邮件,收件人却总是收到文本邮件
要在通讯录里面,把你要发送的人设置可以接收HTML格式的邮件,那么你才能发出HTML格式. 否则,Thunderbird默认你所发的收件人无法接收HTML格式邮件.
- Javascript高级程序设计-问答模式
1.谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制 sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序可以自己定义排序方法 ...
- PHP测试用例-前言 1
前提知识准备 在学习本课程之前,你需要准备以下知识点: 掌握一般的PHP开发技能,使用面向对象的框架开发过三个月以上 会一些JS知识 了解http协议 拥有以下知识会学得更加顺利: 掌握PHPUnit ...
- 通过案例对SparkStreaming透彻理解三板斧之二
本节课主要从以下二个方面来解密SparkStreaming: 一.解密SparkStreaming运行机制 二.解密SparkStreaming架构 SparkStreaming运行时更像SparkC ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何查看错误代码
一般模块出错会在Error中显示为TRUE,同时ErrorID中会有一个错误代码,下图所示就是出错之后的效果 在变量表中也可以看到,右击转成16进制查看 由于是NC模块出错,所以可以再NC的E ...
- Java8 CompletableFuture组合式的编程(笔记)
* 实现异步API public double getPrice(String product) { return calculatePrice(product); } /** * 同步计算商品价格的 ...
- Excel 读取
using UnityEngine; using System.Collections; using NPOI; using Ionic.Zip; using System.IO; using NPO ...
- Django——Django中的QuerySet API 与ORM(对象关系映射)
首先名词解释. ORM: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型 ...
- Web前端开发实战1:二级下拉式菜单之CSS实现
二级下拉式菜单在各大学校站点.电商类站点.新闻类站点等大型?站点非经常见,那么它的实现原理是什么呢? 学习了Web前端开发的知识后,我们是能够实现这种功能的.复杂的都是从基础效果上加入做出来的.原理和 ...
- HttpClient Coder Example
Example 1: HttpClient httpClient = new HttpClient(); httpClient.getHostConfigurati ...