限制EditText的输入字数
private EditText edit_student_name;
edit_student_name.addTextChangedListener(changeStudentNameWatcher); private TextWatcher changeStudentNameWatcher = new TextWatcher() {
private int editStart ;
private int editEnd ;
public void afterTextChanged(Editable s) { edit_student_name.setSelection(edit_student_name.length());
editStart = edit_student_name.getSelectionStart();
editEnd = edit_student_name.getSelectionEnd();
// 先去掉监听器,否则会出现栈溢出
edit_student_name
.removeTextChangedListener(changeStudentNameWatcher);
// 注意这里只能每次都对整个EditText的内容求长度,不能对删除的单个字符求长度
// 因为是中英文混合,单个字符而言,calculateLength函数会返回1或2
long calculateLength = CalculateStringLength(s.toString());
if (calculateLength > MAX_NAME_COUNT_CLASSNAME ) {
Toast. makeText(getApplicationContext(), "最多输入10个字符",
Toast. LENGTH_SHORT).show();
}
while (calculateLength > MAX_NAME_COUNT_CLASSNAME ) { // 当输入字符个数超过限制的大小时,进行截断操作
s.delete( editStart - 1, editEnd );
editStart--;
editEnd--;
calculateLength =CalculateStringLength(s.toString());
}
edit_student_name.setSelection(editStart );
// 恢复监听器
edit_student_name.addTextChangedListener(changeStudentNameWatcher );
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
}; /**
*
* @方法名称:CalculateStringLength
* @描述: 计算字符长度(对于单个字符,汉字返回2其他字符返回1)
* @创建人:LiPengBo
* @创建时间:2014-6-5 下午3:06:09
* @备注:
* @param str
* @return
* @返回类型:int
*/
public int CalculateStringLength(String str){
String aString =str;
String anotherString = null;
try {
anotherString = new String(aString.getBytes("GBK"), "ISO8859_1");
}
catch (UnsupportedEncodingException ex) {
}
return anotherString.length();
}
限制EditText的输入字数的更多相关文章
- 【移动开发】EditText输入字数限制总结(包括中文输入内存溢出的解决方法)
限定EditText输入个数的解决方案很多,但是一般主要考虑两点,也就是处理两件事:(1)不同语言字符(英文.中文等)处理方式(2)输入字符达到数目后,是否仍然允许用户输入 第一点,涉及的东东其实蛮多 ...
- Android EditText输入字数限制总结(包含中文输入内存溢出的解决方法)
转载请注明,大飞:http://blog.csdn.net/rflyee/article/details/38856539 限定EditText输入个数的解决方式非常多,可是一般主要考虑两点.也就是处 ...
- Android---3种方式限制EditView输入字数(转载)
方法一:利用TextWatcher editText.addTextChangedListener(new TextWatcher() { private CharSequence temp; pri ...
- Android限定EditText的输入类型为数字或者英文(包括大小写),EditText,TextView只能输入两位小数
Android限定EditText的输入类型为数字或者英文(包括大小写) // 监听密码输入框的输入内容类型,不可以输入中文 TextWatcher mTextWatcher = new Tex ...
- 限制EditText只能输入小数点后两位
设置EditText只能输入小数点后两位,在价格等有限制的输入时特别有效 TextWatcher textWatcher = new TextWatcher() { @Override public ...
- Android 开发之拦截EditText的输入内容,定制输入内容
1.EditText作为一个比较成熟的View,在Android的应用开发中得到极为广泛的使用.在某些特殊情况下,我们可能需要定制EditText的输入内容, 只允许指定功能的输入,例如输入一个”dd ...
- 实现textarea限制输入字数(包含中文只能输入10个,全ASCII码能够输入20个)
document.getElementById("<%=textBox1.ClientID %>").value 实现textarea限制输入字数(包含中文只能输入10 ...
- 监听文本框输入开发仿新浪微博限制输入字数的textarea插件
监听文本框输入 Firefox.Chrome.IE9,IE10 均支持 oninput 事件,此外所有版本的 IE 均支持 onpropertychange 事件. oninput 事件在用户输入.退 ...
- JS动态呈现还可以输入字数
现在觉得当我们使用js或者jquery来呈现一个动态效果时,主要还是要想清楚它的思想.它的原理.而动态呈现输入字数,其实就是给它设置一个最大输入字数,然后获取已输入的字数,自然想做什么都可以. < ...
随机推荐
- sql语句删除由于无主键导致完全重复的数据方法
sql语句删除由于无主键导致完全重复的数据方法 select distinct * into #Tmp from t_column drop table t_column select * into ...
- MDK的优化应用(转)
源:http://blog.163.com/zhaojun_xf/blog/static/300505802011291384721/ 使用Keil/MDK这么多年了,一直都没有使用它的代码优化功能. ...
- 在IE6里面当元素浮动后再设置margin那么就会产生双倍边距
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Oracle教程-查询(二)
emp 雇员表字段名称 数据类型 是否为空 备注-------- ----------- -------- --------EMPNO NUMBER(4) ...
- PAT (Advanced Level) 1044. Shopping in Mars (25)
双指针. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...
- 使用response实现文件下载注意点
创建web工程,使用response实现文件的下载. 在webRoot下创建download文件,里面包含要下载的文件,现在把源码贴上来,然后再说我遇到的问题 public class DownLoa ...
- C#使用FFmpeg 将视频格式转换成Gif图片示例
根据EFmpeg封装的视频转换gif工具:https://my.oschina.net/tianma3798/blog/825317 一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 ...
- Sybase数据库的分页功能
项目中需要用到Sybase数据库的分页功能,想尽各种办法都没有成功,最后用如下的存储过程成功实现功能,记录备忘. ),@start int, @pageSize int as begin declar ...
- Nexus搭建私服 学习
为什么要搭建nexus私服 因为有些公司不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以,有必要再局域网里找一台有外网权限的机器.搭建nexus私服,然后开发人员连接到这台私服 ...
- 深入浅出 - Android系统移植与平台开发(一)
深入浅出 - Android系统移植与平台开发(一) 分类: Android移植2012-09-05 14:16 16173人阅读 评论(12) 收藏 举报 androidgitgooglejdkub ...