Android edittext手机格式

Android edittext手机格式,android,android-edittext,Android,Android Edittext,我正在为edittext实现电话号码格式。 问题在于电话长度的限制 我正在使用PhoneNumberFormattingTextWatcher: EditText telNumber = (EditText) findViewById(R.id.txt_tel); telNumber.addTextChangedListener(new PhoneNumberFormattingTextWatcher()); 它不限制电话号码的长度 因此我试图限制xml中编辑文本的长度:android:max

我正在为edittext实现电话号码格式。
问题在于电话长度的限制

我正在使用PhoneNumberFormattingTextWatcher:

EditText telNumber = (EditText) findViewById(R.id.txt_tel);
telNumber.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
它不限制电话号码的长度 因此我试图限制xml中编辑文本的长度:
android:maxLength=“16”

PhoneNumberFormattingTextWatcher通过在某些字符之间插入空格来格式化编辑文本。
问题是,对于不同的地区代码,它显示不同的格式并插入不同数量的空格:
+380 50 555 5555(16个字符)和
+380 5555555(15个字符)。
所以在第二种情况下,它允许添加一个不需要的字符

如何解决这个问题? 也许PhoneNumberFormattingTextWatcher中有一个内置功能来限制电话号码

如何为所有地区代码实现单一格式
成为: +380 50 555 5555
+380 55 555 5555?

您要找的是:

EditText telNumber = (EditText) findViewById(R.id.txt_tel);
telNumber.setInputType(InputType.TYPE_CLASS_PHONE);
InputFilter[] filter = new InputFilter[1];
filter[0] = new InputFilter.LengthFilter(16);
telNumber.setFilters(filter);

至于字符限制,唯一适用的属性是您提到的,
android:maxLength
。我很确定
TextView
只计算输入字符,而不是该条件下视图中显示的字符。

您可以取消电话号码的IP,从而从edittext中删除不需要的字符

试试下面的代码

String cell = _cellNumber_ET.getText().toString().trim();
    cell = PhoneNumberUtils.stripSeparators(cell);

谢谢你的回答。但我不知道如何使用它。据我所知,它删除了前面和后面的空格,然后是分隔符。你的意思是设置ontextChangedListener并检查实际的电话号码长度吗?一旦你从edittext中获得了最后一个字符串,然后解除该字符串的链接,不知怎的,这没有帮助。这段代码应该做什么?它应该给用户提供和你在使用“电话”应用程序(例如拨打电话)时相同的键盘布局。
InputFilter
部分设置了文本字段中允许的最大字符数。您有针对所有国家/地区代码的解决方案吗???