在app添加银行卡手机号码是时每四位补一个空格,以增加用户体验

一、银行卡

举例:银行卡号:6221553741546546566

效果:6221 5537 4154 6546 566

用到,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) {            }        });      }

 

更多相关文章

  1. weex和Android的交互
  2. Android开发无法打开模拟器的问题:use '@foo' to launch a virtua
  3. Android(安卓)string.xml 显示特殊符号
  4. Android使用HttpURLConnection访问接口
  5. APIDEMO OS Vibrator 手机震动使用
  6. Android验证手机号、用户名正则表达式
  7. Android(安卓)EditText文本输入框禁止输入空格
  8. Android(安卓)电话查询(扩展成通讯录)
  9. android输入框EditText输入银行卡,输入手机,输入身份证格式化的

随机推荐

  1. 安卓开发38:安卓的滚动条相关属性
  2. RelativeLayout的16种特有属性
  3. Android中使用Universal-Image-Loader图
  4. Android 5.1系统禁止通知状态栏下拉
  5. Android SDK中国在线更新镜像服务器 解决
  6. App 权限一点知识
  7. Android Map开发基础知识学习笔记(转)
  8. Android AndroidManifest.xml文件的andro
  9. Android 搭建环境配置
  10. Android Pitfall - Fragment.startActivi