前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓手机号码自动添加空格效果-终极解决方案-亲测能用

安卓手机号码自动添加空格效果-终极解决方案-亲测能用

作者头像
用户3030674
发布2020-06-05 09:35:20
8820
发布2020-06-05 09:35:20
举报
文章被收录于专栏:用户3030674的专栏

最近UI对于手机号输入框提出了要自动添加空格的需求,没办法,产品和UI就是大爷,说了就要做呀。

但是在网上搜了好多资料,说着是能够实现,但是大多数都是无脑的Ctrl+C 和Ctrl+V,根本就没有实践过,就直接复制粘贴,完全是不负责任的。也不知道源头是谁。

既然咱们踩过坑了,就要为后人修好路。

在此留下这一条平坦大路给各位码农朋友。

代码语言:javascript
复制
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 = phone.replace(" ", "");
                //添加第三位数字后面的空格
                if (value.length() > 3) {
                    value = value.substring(0, 3) + " " + value.substring(3, value.length());
                }
                //添加第7位数字后面的空格(因为第三位数字后面有个空格,所以是在字符串第8位后面添加空格)
                if (value.length() > 8) {
                    value = 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) {
            }
        });

  如果您有更优雅的解决方案,欢迎一起讨论

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档