一万年来谁著史,三千里外欲封侯。这篇文章主要讲述安卓手机号码自动添加空格效果-终极解决方案-亲测能用相关的知识,希望能为你提供帮助。
最近UI对于手机号输入框提出了要自动添加空格的需求,没办法,产品和UI就是大爷,说了就要做呀。
但是在网上搜了好多资料,说着是能够实现,但是大多数都是无脑的Ctrl+C 和Ctrl+V,根本就没有实践过,就直接复制粘贴,完全是不负责任的。也不知道源头是谁。
既然咱们踩过坑了,就要为后人修好路。
【安卓手机号码自动添加空格效果-终极解决方案-亲测能用】在此留下这一条平坦大路给各位码农朋友。
EditText et_login_phone = findViewById(R.id.et_login_phone); et_login_phone.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { }@Override public void onTextChanged(CharSequence s, int start, int before, int count) { String phone = s.toString(); //若有输入框处于编辑状态且有数据要显示删除叉号的需求,可以在此处处理 //clearPhone.setVisibility(phone.length() > 0 ? View.VISIBLE : View.GONE); //将原始数据去空格处理 String value = https://www.songbingjia.com/android/phone.replace(" ", ""); //添加第三位数字后面的空格 if (value.length() > 3) { value = https://www.songbingjia.com/android/value.substring(0, 3) +" " + value.substring(3, value.length()); } //添加第7位数字后面的空格(因为第三位数字后面有个空格,所以是在字符串第8位后面添加空格) if (value.length() > 8) { value = https://www.songbingjia.com/android/value.substring(0, 8) +" " + value.substring(8, value.length()); } et_login_phone.removeTextChangedListener(this); //赋值前,需要先将监听移除,不移除,会出现卡死的问题 et_login_phone.setText(value); //将添加空格之后的数据进行赋值 et_login_phone.addTextChangedListener(this); //赋值后,将监听添加到控件上 //输入指针至于输入内容尾部。 et_login_phone.setSelection(et_login_phone.getText().toString().length()); }@Override public void afterTextChanged(Editable s) { } });
如果您有更优雅的解决方案,欢迎一起讨论
推荐阅读
- Mac上查看当前安卓手机上打开的app的包名和主程序入口
- Android为按钮添加相应事件的代码
- ADB使用WIFI连接Android设备
- Flask论坛管理网站中遇到问题('flask.ctx._AppCtxGlobals object' has no attribute 'cms_user')(示例代码
- 数据库中的Rails视图记录
- Ruby on Rails AJAX介绍和用法
- Rails将记录保存到数据库中
- app获取自己的签名
- appium 自动化问题三--键盘关键字的使用