java - 自定义电话号码格式

标签 java android android-layout

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

我阅读了有关电话号码库等的信息,但仍然找不到方法来执行此操作,因为所有库都可以与 USGerman 正常工作>法语和其他格式。我想支持俄语,但这些库无法正常工作。

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

例如,如果我输入

79123456789

它的格式必须像这里一样

+7(912)345-67-89

我找到了 IOS (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) {

            }
        });

最佳答案

也许这会有所帮助(PhoneNumberUtils):http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html

一个小例子:

String formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber);

这将根据号码所在国家/地区的规则自动设置号码格式。

查看 PhoneNumberUtils 了解更多选项。

关于java - 自定义电话号码格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21881728/

相关文章:

java - 压缩 HTTP 响应 header ?

android - 三星的多窗口支持 - 屏幕尺寸

android - 由于 fragment 中的 textwacher,无法更改 edittext 的值

android - 如何更改放置在启动器屏幕中的应用程序名称

android - 在 Android 中创建类似网格的布局

java - Android FrameLayout 中的 ProgressBar 永远不可见

java - 将 ArrayList 值动态传递给其他 ArrayList

java - 适配器中的计时器无法正常工作

java - 无法停止前台服务 stopSelf() 和 stopForeground(true) 不起作用

java - 当我的内容离开屏幕时如何查看我的整个布局?