PhoneNumberFormattingTextWatcher无效

时间:2013-02-11 22:08:32

标签: android formatting android-edittext textwatcher

我正在尝试使用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 - 或+或(),只是相同而没有任何格式 代码中是否有任何遗漏

帮助

5 个答案:

答案 0 :(得分:8)

遇到了同样的问题,但在删除var jsonSass = require('gulp-json-sass'), gulp = require('gulp'), concat = require('gulp-concat'), sass = require('gulp-sass'); gulp.task('sass', function() { return gulp.src(['sass/example.json', 'sass/example.scss']) .pipe(jsonSass({ sass: false })) .pipe(concat('output.scss')) .pipe(sass().on('error', sass.logError)) .pipe(gulp.dest('out/')); }); 之后就消失了。

答案 1 :(得分:3)

我在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());

答案 2 :(得分:2)

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

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

  

设置 - &gt;搜索语言 - &gt;选择英语(美国)

格式(999)999-9999主要在美国使用,因此手机语言应该只设置为。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

最终解决方案:该问题仅与您在XML中选择的android:inputType有关。它不能与“数字”一起使用。您需要选择“电话”或不选择inputType。