PhoneNumberFormattingTextWatcher无效

F.s*_*.sh 8 formatting android textwatcher android-edittext

我正在尝试使用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());
}
Run Code Online (Sandbox Code Playgroud)

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

救命

YTe*_*rle 10

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

  • @DanielNugent我建议还添加一个空格,因为一些国际格式使用它:`android:digits="1234567890 +()-"` (2认同)

Jus*_*tin 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" />
Run Code Online (Sandbox Code Playgroud)

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

phoneView.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
Run Code Online (Sandbox Code Playgroud)


小智 0

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