12

我正在尝试使用 PhoneNumberFormattingTextWatcher 但没有发生任何事情,好像代码不存在

这是代码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
    EditText PhoneEdit = (EditText) findViewById(R.id.editText1); 
    PhoneEdit.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
}

当输入 002010555666 时它仍然是相同的 no - 或 + 或 (),只是没有任何格式的相同代码中是否缺少任何内容

帮助

4

5 回答 5

18

有同样的问题,但删除后就android:digits="1234567890+"消失了。

于 2016-04-25T11:08:56.377 回答
5

我在 YTerle 的答案中添加了评论,但我想将完整的答案放在下面:

<android.support.design.widget.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="phone"
                android:hint="@string/phone_number"
                android:layout_marginBottom="5dp"
                android:ems="10"
                android:maxLength="14"
                android:id="@+id/phone" />

然后在代码中输入以下内容:

phoneView.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
于 2016-10-03T15:37:22.713 回答
2

即使在添加android:inputType="phone"XML 之后我也遇到了问题。

解决方案是在手机中设置语言

设置 -> 搜索语言 -> 选择英语(美国)

格式 (999) 999-9999 主要用于美国,因此电话语言应仅设置为该格式。

于 2017-03-13T13:03:39.843 回答
1

最终解决方案:该问题仅与您在 XML 中选择的 android:inputType 相关。它不适用于“数字”。您需要选择“电话”或无输入类型。

于 2019-06-06T13:32:59.513 回答
0

我在应用程序中使用了它,它在模拟器中运行良好(Android_4.2_Emulator_Smartphone_Nexus_S 使用平台 4.4.2,API 19)但在运行平台 4.1.2,API 17 的三星 Tab 3 设备上运行时完全没有效果. 也许它依赖于设备?文档表明它是在 API 1 中引入的,所以我认为它现在应该已经解决了所有问题,但显然没有。

于 2014-05-15T17:26:42.710 回答