如何屏蔽电话号码格式如PhoneNumberUtils格式的编辑文本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (181)

我想让用户输入的电话号码在一个编辑文本,以动态改变格式,每次用户输入一个数字。也就是说,当用户输入多达4位数字时,例如7144,则编辑文本显示“714-4”。我希望当用户输入一个数字时,编辑文本被动态更新为格式化###-###

提问于
用户回答回答于
EditText inputField = (EditText) findViewById(R.id.inputfield);
inputField.addTextChangedListener(new PhoneNumberFormattingTextWatcher());

使用PhoneNumberFormattingTextWatcher的好处是,它将根据地区设置正确的数字条目格式。

用户回答回答于
etPhoneNumber.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    int digits = etPhoneNumber.getText().toString().length();
                    if (digits > 1)
                        lastChar = etPhoneNumber.getText().toString().substring(digits-1);
                }

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    int digits = etPhoneNumber.getText().toString().length();
                    Log.d("LENGTH",""+digits);
                    if (!lastChar.equals("-")) {
                        if (digits == 3 || digits == 7) {
                            etPhoneNumber.append("-");
                        }
                    }
                }

                @Override
                public void afterTextChanged(Editable s) {

                }
            });

所属标签

可能回答问题的人

  • EatRice

    16 粉丝0 提问143 回答
  • 成都加米谷大数据

    11 粉丝0 提问11 回答
  • 富有想象力的人

    5 粉丝0 提问344 回答
  • 最爱开车啦

    9 粉丝503 提问1.6K 回答

扫码关注云+社区

领取腾讯云代金券