为什么我应用到EditText的PhoneNumberFormattingTextWatcher不格式化并发1的格式

时间:2019-04-19 06:21:15

标签: android

我在我的editText字段上使用PhoneNumberFormattingTextWatcher,我注意到它没有格式化以11开头的数字,而是将它们视为普通字符串。为什么是这样。并且可以解决这个问题吗?

这是XML:

<android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="8">
            <!-- INPUT -->
            <EditText
                android:id="@+id/etMobile"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="@dimen/dp_size_8"
                android:layout_marginBottom="@dimen/dp_size_8"
                android:background="@null"
                android:ems="10"
                android:hint="@string/edt_mobile"
                android:inputType="phone"
                android:maxLength="14"
                android:paddingTop="@dimen/dp_size_2" />

        </android.support.design.widget.TextInputLayout>

这是java活动中的用法:

etMobile.addTextChangedListener(new PhoneNumberFormattingTextWatcher());

当前本地为

  

美国

预期的数字格式为

  

1 222-222-2222

     

1 333-333-3333

但是当最初的“ 1”之后出现“ 1”时,我得到

  

11111111111111

1 个答案:

答案 0 :(得分:0)

对于您给PhoneNumberFormattingTextWatcher的给定语言环境,以11开头的数字可能不是公认的电话号码。就我而言,它是任何以7、6或2开头的数字。

如果需要解决,可以随时创建自己的文本查看器或使用PhoneNumberUtils的格式编号功能。