银行卡和手机号自动补空格

来源:互联网 发布:最好的有声小说软件 编辑:程序博客网 时间:2024/04/29 22:27

转自:http://www.apkbus.com/home.php?mod=space&uid=74625&do=blog&id=42956

银行卡和手机号自动补空格

热度 1已有 135 次阅读2012-10-15 13:22 |系统分类:Android开发| 手机号, 银行卡号, 自动补空格

最近在做银联的手机产品,经理提议在银行卡号每四位补一个空格,以增加用户体验
举例:银行卡号:6221553741546546565
效果:6221 5537 4154 6546 565
怎么实现呢?主要是要用到,addTextChangedListener,setSelection等函数

public  static  void  fillBankNumSpeace(final  EditText mAddCardNumEdt){//银行卡补齐 空格
      mAddCardNumEdt.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (count == 1) {
if (s.length() == 4) {
mAddCardNumEdt.setText(s + " ");
mAddCardNumEdt.setSelection(5);
}
if (s.length() == 9) {
mAddCardNumEdt.setText(s + " ");
mAddCardNumEdt.setSelection(10);
}
if (s.length() == 14) {
mAddCardNumEdt.setText(s + " ");
mAddCardNumEdt.setSelection(15);
}
if (s.length() == 19) {
mAddCardNumEdt.setText(s + " ");
mAddCardNumEdt.setSelection(20);
}
} else if (count == 0) {
if (s.length() == 4) {
mAddCardNumEdt.setText(s.subSequence(0,
s.length() - 1));
mAddCardNumEdt.setSelection(3);
}
if (s.length() == 9) {
mAddCardNumEdt.setText(s.subSequence(0,
s.length() - 1));
mAddCardNumEdt.setSelection(8);
}
if (s.length() == 14) {
mAddCardNumEdt.setText(s.subSequence(0,
s.length() - 1));
mAddCardNumEdt.setSelection(13);
}
if (s.length() == 19) {
mAddCardNumEdt.setText(s.subSequence(0,
s.length() - 1));
mAddCardNumEdt.setSelection(18);
}
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
      }
注意:一般用户输入了第一遍卡号,要求再次输入账号,以验证两次卡号是否一致,这时不能直接调trim()去空格,再用 equals 比较,因为有的用户可能使用复制,粘贴功能,所以最好还是用replace("")去掉
空格再比较。
      
    手机号也一样。
      public  static  void  fillTelSpeace(final  EditText mAddCardNumEdt){//手机号码后 补齐 空格
      mAddCardNumEdt.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (count == 1) {
if (s.length() == 3) {
mAddCardNumEdt.setText(s + " ");
mAddCardNumEdt.setSelection(4);
}
if (s.length() == 8) {
mAddCardNumEdt.setText(s + " ");
mAddCardNumEdt.setSelection(9);
}
if (s.length() == 11) {
mAddCardNumEdt.setText(s + " ");
mAddCardNumEdt.setSelection(11);
}
 
}  else if (count == 0) {
if (s.length() == 4) {
mAddCardNumEdt.setText(s.subSequence(0,
s.length() - 1));
mAddCardNumEdt.setSelection(3);
}
if (s.length() == 9) {
mAddCardNumEdt.setText(s.subSequence(0,
s.length() - 1));
mAddCardNumEdt.setSelection(8);
}
if (s.length() == 11) {
mAddCardNumEdt.setText(s.subSequence(0,
s.length() - 1));
mAddCardNumEdt.setSelection(10);
}
 
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
      }
原创粉丝点击