Android edittext手机格式
我正在为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
问题在于电话长度的限制 我正在使用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
部分设置了文本字段中允许的最大字符数。您有针对所有国家/地区代码的解决方案吗???