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));
}