当前位置: 首页 > 知识库问答 >
问题:

自定义电话号码格式

吕鸿轩
2023-03-14

在我的Android应用程序中,我想创建自己的电话号码格式,但仍然找不到实现这一点的方法。

我阅读了有关电话号码库等的信息,但仍然找不到这样做的方法,因为所有库都可以正常使用US德语法语和其他格式。我想支持俄语,但这些库不能正常工作。

唯一的方法是我必须创建自己的格式。

例如,如果我打字

79123456789

它必须像这里一样格式化

+7(912)345-67-89

我找到了IOS操作系统的libs(SHSPhoneTextField),但在Android操作系统中我没有找到。

谁能告诉我这里的好办法吗?

  mPhoneNumber.addTextChangedListener(new PhoneNumberFormattingTextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
                if (charSequence.length() == 11)
                mPhoneNumber.setText(PhoneNumberUtils.formatNumber(charSequence.toString()));
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

共有2个答案

傅元章
2023-03-14

您应该将PhoneNumberUtils与所需的Locale一起使用,如下所示:

Locale localeRU = new Locale("ru","RU");
String formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber, PhoneNumberUtils.getFormatTypeForLocale (localeRU));

请在此处查看相应的语言环境

@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
  if (charSequence.length() == 11)     
     Locale localeRU = new Locale("ru","RU");
     mPhoneNumber.setText(PhoneNumberUtils.formatNumber(charSequence.toString(), localeRU));
  }
盖和泰
2023-03-14

也许这将有助于(PhoneNumberUtils):http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html

举个小例子:

String formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber);

这将根据号码来自的国家/地区的规则自动格式化号码。

查看PhoneNumberRutils了解更多选项。

 类似资料:
  • 问题内容: 我有一个数据库,其中包含数以百万计的免费格式的电话号码。即,UI不强制执行任何约束,并且用户正在键入他们想要的任何内容。 我正在寻找的是一种Java API,可以尽力将它们转换为一致的格式。理想情况下,API将采用自由文本值和国家/地区代码,并产生有效的国际电话号码或引发异常。 例如,系统中的电话号码可能类似于以下任何一项: 给定美国所在的国家/地区,API将为所有这些产生值“ +1(

  • 问题内容: 我正在使用 SMS应用程序 ,需要能够将发件人的电话号码从 +11234567890转换 为 123-456-7890, 以便可以将其与 MySQL数据库中的 记录进行比较。 数字以后一种格式存储,可在网站上的其他地方使用,我宁愿不更改该格式,因为它将需要修改大量代码。 我将如何使用PHP? 谢谢! 问题答案:

  • 问题内容: 一旦用户开始将电话号码键入此格式类型,并且我可以正常工作,我就在格式化文本文件中的文本,但是一旦我从服务器上获得了电话号码,我就这样得到了,所以请您告诉我如何编辑它我从服务器获得相同格式的文件吗? 输入开始后的代码: 问题答案: 用String中的字符进行操作不是很简单。您需要遵循以下条件: 斯威夫特2.1 雨燕2.0 代码将打印

  • 问题内容: 我想知道如何使用angularjs指令在输入字段中自动设置数字格式?在输入字段中输入6042919283时,我希望它显示为604-291-9283。 谢谢 问题答案: 您可以使用UI Utils遮罩。 它允许您定义允许的输入格式,并将为您处理验证以及格式设置

  • 我需要在UITextField中显示电话号码格式作为占位符。我怎么能那样做? 对于国家选择,我使用下面提到的库,它提供了针对用户选择的国家的国旗和国家代码。 https://github.com/NikKovIos/NKVPhonePicker 选择国家后,我需要显示所选国家的电话号码格式,提交该电话号码时,我必须验证电话号码。 我还发现,第三方(PhoneNumberKit)的灵感来源于谷歌的l

  • 我看到了一些与我要求的相似的问题,但似乎没有什么符合要求的。 我处于需要处理通话记录并使用电话号码确定国家的位置。拨打的号码可以是任何国家,例如: 44 7899455120-英国 34 965791845-西班牙 355 788415235-阿尔巴尼亚 显然,如果所有的呼叫代码都是两位数的话,这个世界将是美好的,但事实并非如此。目前,我有一个数据库,里面有国家及其相关代码,为了匹配,我需要有效地