android 银行卡。。空格输入
2016-03-02 09:10
441 查看
class myWatcher implements TextWatcher { int beforeTextLength = 0; int onTextLength = 0; boolean isChanged = false; int location = 0;// 记录光标的位置 private char[] tempChar; private StringBuffer buffer = new StringBuffer(); int konggeNumberB = 0; @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub onTextLength = s.length(); buffer.append(s.toString()); if (onTextLength == beforeTextLength || onTextLength <= 3 || isChanged) { isChanged = false; return; } isChanged = true; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub beforeTextLength = s.length(); if (buffer.length() > 0) { buffer.delete(0, buffer.length()); } konggeNumberB = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ' ') { konggeNumberB++; } } } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub if (isChanged) { location = etAccount.getSelectionEnd(); int index = 0; while (index < buffer.length()) { if (buffer.charAt(index) == ' ') { buffer.deleteCharAt(index); } else { index++; } } index = 0; int konggeNumberC = 0; while (index < buffer.length()) { if ((index == 4 || index == 9 || index == 14 || index == 19)) { buffer.insert(index, ' '); konggeNumberC++; } index++; } if (konggeNumberC > konggeNumberB) { location += (konggeNumberC - konggeNumberB); } tempChar = new char[buffer.length()]; buffer.getChars(0, buffer.length(), tempChar, 0); String str = buffer.toString(); if (location > str.length()) { location = str.length(); } else if (location < 0) { location = 0; } etAccount.setText(str); Editable etable = etAccount.getText(); Selection.setSelection(etable, location); isChanged = false; } } } //给edititex 加入这个watcher
相关文章推荐
- Android之如何用cmd方法查看logcat
- Android studio Github 开源项目依赖添加失败解决方法
- 广师Android群分享之图片与视频
- 5个Android开发中比较常见的内存泄漏问题及解决办法
- android view转换成bitmap截图
- scrollview始终显示滚动条 Android
- android gps驱动 可见/已连接卫星支持北斗
- Android学习笔记之(一)开发环境搭建
- Android - Daydream 互动屏保
- Android应用界面开发_学习笔记_第二周
- AndroidStudio刚安装完新建项目之后就报错无法运行
- android AIDL机制 电话拦截
- Android中View自定义XML属性详解以及R.attr与R.styleable的区别
- Android 应用程序无缝设计
- Android画布canvas rotate,translate的理解
- Android基础:button imageview
- Android 仿美团网,探索ListView的A-Z字母排序功能实现选择城市
- Android自定义布局弹窗
- Styling the Action Bar --1.1.3
- 自定义View之刻度盘