最近在做一个输入扫描银行卡的需求,要求通过card.io这个开源的sdk扫描获得银行卡号,或者直接输入卡号。那么在输入卡号的过程中,需要每4个数字自动空一格,实现起来也比较简单,主要是实现一个TextWacher的接口,然后重写里面的beforeTextChanged(),onTextChanged()以及afterTextChanged()三个方法。主要代码如下

import android.text.Editable;

import android.text.Selection;

import android.text.TextWatcher;

import android.util.Log;

import android.widget.EditText;

public class SpaceText implements TextWatcher{

private String TAG = "SpaceText";

private EditText etSpace;

int beforeTextLength = 0;

int onTextLength = 0;

public SpaceText(EditText etSpace){

super();

this.etSpace = etSpace;

}

public String removeAllSpace(String str) {

String tmpstr=str.replace(" ","");

return tmpstr;

}

@Override

public void afterTextChanged(Editable s) {

// TODO Auto-generated method stub

String str = etSpace.getText().toString();

Log.d(TAG, "mEditText = " + removeAllSpace(str) + ".");

onTextLength = str.length();

Log.d(TAG, "beforeLen = " + beforeTextLength + "afterLen = " + onTextLength);

if (onTextLength > beforeTextLength) {

if (str.length() == 5 || str.length() == 10 || str.length() == 15 || str.length() == 20) {

etSpace.setText(new StringBuffer(str).insert(

str.length() - 1, " ").toString());

etSpace.setSelection(etSpace.getText()

.length());

Log.d(TAG, "selection = " +etSpace.getText()

.length());

}

} else {

if (str.startsWith(" ")) {

etSpace.setText(new StringBuffer(str).delete(

onTextLength - 1, onTextLength).toString());

etSpace.setSelection(etSpace.getText()

.length());

Log.d(TAG, "else start space");

}

}

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

// TODO Auto-generated method stub

beforeTextLength = s.length();

}

@Override

public void onTextChanged(CharSequence s, int start, int before, int count) {

// TODO Auto-generated method stub

}

}

首先创建一个类实现TextWatcher接口,重载构造方法来接受一个EditText类型的etSpace数据,这样在主函数中的EditText的控件里只用加入TextWatcher SpaceText = new SpaceText(EditText)将EditText传进去,然后 EditText.addTextChangedListener(SpaceText)设置监听即可。

代码比较简单,就当做一个小总结了。

android 银行卡号 4位,Android中控制银行卡号的输入 即4个数字空一格相关推荐

  1. Android中控制银行卡号的输入 即4个数字空一格

    最近在做一个输入扫描银行卡的需求,要求通过card.io这个开源的sdk扫描获得银行卡号,或者直接输入卡号.那么在输入卡号的过程中,需要每4个数字自动空一格,实现起来也比较简单,主要是实现一个Text ...

  2. android html换行,在html中控制自动换行

    在html中控制自动换行 在网上搜寻到2中解决方案: 1.其实只要在表格控制中添加一句 就搞定了. 其中可能对英文换行可能会分开一个单词问题:解决如下: 语法: word-break : normal ...

  3. html只能输入两位小数,JQuery控制input只能输入数字和两位小数(有关金额)代码...

    jquery代码: function num(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字&quo ...

  4. jquery 验证小数点后几位_利用jquery实现验证输入的是否是数字、小数,包含保留几位小数...

    1.验证方法 validationNumber(e, num)  e代表标签对象,num代表保留小数位数 function validationNumber(e, num) { var regu = ...

  5. Android中的EditText输入银行卡号四位空一格

    近期项目开发有需要用户输入银行卡号,为了便于用户区分自己是否输入的正确,提升用户体验,特做了银行卡号四位一空格的操作.同时考虑到粘贴复制过来的银行卡号也要做四位一空格的处理,所以自定义了一个监听事件, ...

  6. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  7. 控制TextBox只能输入数字

    在有些场合下需要控制TextBox的输入内容只能是数字,这可以通过添加TextBox的键盘事件(onkeyup.onkeypress.onkeydown等)来实现. 首先说一下键盘事件的触发顺序:on ...

  8. 【android】EditText输入银行卡号每四位空一格

    完美仿微信银行卡号输入,输入每4个数字就自动添加一个空格 代码如下: import android.text.Editable; import android.text.Selection; impo ...

  9. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler...

    来自:http://blog.csdn.net/jason0539/article/details/18055259 遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新, ...

  10. c语言控制安卓桌面,让你自己编写的Android的Launcher成为系统中第一个启动应用程序,也是唯一的Launcher...

    关注嵌入式安卓物联网行业及人才培养,每日更新,欢迎订阅及留言讨论~~~ 作者:倪键树,嵌入式安卓物联网讲师. 让你自己编写的Android的Launcher成为系统中第一个启动应用程序,也是唯一的La ...

最新文章

  1. python扫雷 广度优先_Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper)...
  2. 只因接了一个电话,程序员被骗 30 万!
  3. Parasoft、SmartBear和Gimpel Software测试分析类产品对比评测
  4. android屏幕底部黑块,Android surfaceView 黑块问题
  5. 1.3 Quick Start中 Step 3: Create a topic官网剖析(博主推荐)
  6. MySQL 数据备份与同步
  7. 论文笔记:DeepID2
  8. ApplicationContext和BeanFactory
  9. 自定义EventSource(三)IncrementingEventCounter
  10. XML基本知识(三)
  11. 【Python】安装方法小结
  12. 畅通工程(并查集模版题)
  13. 帮你解决Kali Linux 外接无线网卡显示不出来的问题
  14. python sasl_Pyhive、SASL和Python 3.5
  15. html5动态连线,canvas简单连线动画的实现代码
  16. 一师一优课计算机课程,教育部一师一优课在线会客室在南京成功直播
  17. TSINGSEE车载监控平台的城市渣土车监管解决方案
  18. 艾奇KTV电子相册制作软件 4.7 破解安装版
  19. sqlite及sqlite odbc driver使用简介
  20. Synology-群晖(三)DSM7.0系统Video Station无法播放DTS eac3解决方案

热门文章

  1. ies文件 vray_VRAY IES灯与光域网的灯有什么不同 VRAY IES有什么特性
  2. 瑞友天翼服务器ip地址怎么修改,怎么修改这个IP地址
  3. 软件工程毕业设计选题java_软件工程毕业设计选题
  4. Thinkpad x200 X201拆机换风扇教程 实图
  5. 八皇后(韩顺平java)
  6. 数字高程信息30m分辨率SRTM DEM数据下载与拼接(ENVI)
  7. 西班牙出差见闻之三(普拉多博物馆)
  8. vue+elementui+quill富文本框+秀米编辑器和135编辑器
  9. canvas对象arcTo函数的使用-遁地龙卷风
  10. 【SQL Server】入门教程-基础篇(完结)