Android EditeText格式化手机号输入

Android EditeText格式化手机号输入

  • 思路
  • 代码实现

思路

1.输入数字后获取编辑框内容,做替换操作,把空格替换,
2.根据要求在第四位和第九位添空格
3.把添加空格后的内容重新设置到EditeText
4.把光标移到文本末尾

代码实现

1.添加文本变化监听

mEtPhone!!.addTextChangedListener(this)
override fun afterTextChanged(p0: Editable?) {
        var tempStr = p0.toString()
        LogUtils.d(tempStr)
//        获取整个字符串 替换掉空格 在第4位和第9位加空格
        var strBuffer = StringBuffer(tempStr.replace(" ", ""))
        if (strBuffer.length >= 9) {
            strBuffer.insert(3, " ")
            strBuffer.insert(8, " ")

        } else if (strBuffer.length >= 4) {
            strBuffer.insert(3, " ")
        }
        //业务代码,电话号码为空登录按钮不能点击
        btn_login.isEnabled = et_phone.text.toString().isNotEmpty()
        if (strBuffer.toString() != et_phone.text.toString()) {
            et_phone.setText(strBuffer.toString())
            et_phone.setSelection(et_phone.text.toString().length)
        }
    }

实现之前也百度了一下,感觉写的比较复杂,自认为实现的还比较简单,同时炫一下首次发布kotlin版的博客。

你可能感兴趣的:(andriod)