Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义电话号码格式_Java_Android_Android Layout - Fatal编程技术网

Java 自定义电话号码格式

Java 自定义电话号码格式,java,android,android-layout,Java,Android,Android Layout,在我的Android应用程序中,我想创建自己的电话号码格式,但仍然找不到实现这一点的方法 我读过关于电话号码libs等内容,但仍然找不到一种方法来实现这一点,因为所有libs都可以使用US、德语、法语和其他格式。我想支持俄语,但这些libs不能正常工作 唯一的方法是我必须创建自己的格式 例如,如果我键入 79123456789 它必须像这里一样格式化 +7(912)345-67-89 我在IOS(SHSPhoneTextField)中找到了libs,但在Android中没有找到 谁能告诉我这

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

我读过关于电话号码libs等内容,但仍然找不到一种方法来实现这一点,因为所有libs都可以使用
US
德语
法语
和其他格式。我想支持
俄语
,但这些libs不能正常工作

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

例如,如果我键入

79123456789
它必须像这里一样格式化

+7(912)345-67-89
我在
IOS
(SHSPhoneTextField)中找到了libs,但在
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) {

            }
        });
也许这会有帮助(电话号码:

举个小例子:

String formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber);
这将根据号码来源国的规则自动设置号码格式


查看PhoneNumberUtils以了解更多选项。

您应该将
PhoneNumberUtils
与所需的
语言环境一起使用,如下所示:

Locale localeRU = new Locale("ru","RU");
String formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber, PhoneNumberUtils.getFormatTypeForLocale (localeRU));
查看相应的
区域设置


你能把你的密码放好吗?如果看不到您的代码,我们将无法帮助您。我放置的代码就是一个例子。它可能不起作用,但你可以在我给你的网站上找到它的工作方法。@pmb,logcat怎么说?代码是否被触发?您是否用调试程序正确地测试了它?您是否尝试将格式写入控制台,以便知道代码已触发?让我们看看这是您想要的唯一格式吗?您的代码有一个永久循环。监听器调用setText(),setText()调用监听器…什么是unformatedNumber?我只是将其更改为我的电话号码,但出现了错误。在您的情况下,它的charSequence.toString()不需要字符串,请更具体地说,您有什么问题请查看此处公共静态void formatNumber(android.text.Editable text,int defaultFormattingType){/*编译代码*/}我在上面添加了另一个示例
@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));
  }