我在我的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
答案 0 :(得分:0)
对于您给PhoneNumberFormattingTextWatcher的给定语言环境,以11开头的数字可能不是公认的电话号码。就我而言,它是任何以7、6或2开头的数字。
如果需要解决,可以随时创建自己的文本查看器或使用PhoneNumberUtils的格式编号功能。