银行卡和手机号自动补空格
来源:互联网 发布:最好的有声小说软件 编辑:程序博客网 时间:2024/04/29 22:27
转自:http://www.apkbus.com/home.php?mod=space&uid=74625&do=blog&id=42956
银行卡和手机号自动补空格
热度 1 ||
最近在做银联的手机产品,经理提议在银行卡号每四位补一个空格,以增加用户体验
举例:银行卡号: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) {
}
});
}
- 银行卡和手机号自动补空格
- 手机号自动补空格形成(3-4-4)格式
- UITextField手机号中间自动空格
- 自动补空格
- BankCardUtils(根据银行卡号 获取 银行卡类型、银行名称和银行编码 自动格式化银行卡号、手机号、身份证号输入的工具类)
- EditText实现银行卡和手机号格式化编写
- Eclipse自动补全(取消“=”,空格,“.”和“;”的自动补全,加入TAB的自动补全)
- Eclipse自动补全(取消“=”,空格,“.”和“;”的自动补全,加入TAB的自动补全)
- IOS中根据正则表达式来输入的文本框TextField,输入时自动格式化银行卡号(4位一空格)、手机号等
- EditText输入手机号自动带空格
- 手机号验证输入自动填充空格
- 手机号、银行卡号格式化
- <转>Eclipse增强自动补全,取消“=”等号和空格自动输入
- Eclipse增强自动补全,取消“=”等号和空格自动输入
- IOS 银行卡每输入4位自动加空格
- JS输入银行卡号,4位自动加空格
- 输入银行卡号,每四位自动加一个空格
- 银行卡输入每4位自动加空格
- C++数学函数库
- 浅谈程序员的职业规划
- Android 设立全屏
- 3DES 的加密算法
- ELF文件和BIN文件
- 银行卡和手机号自动补空格
- Linux 16进制查看命令、工具 .
- Hadoop源代码编译问题解析
- 如何更新当前记录的某个字段等于本记录的某个字段+上一条记录的某字段之和 .
- 怎么添加链接
- ubuntu virtualbox winxp
- 11gR2游标共享新特性带来的一些问题以及_cursor_features_enabled、_cursor_obsolete_threshold和106001 event
- oracle 存储过程的基本语法
- php数据库备份