我正在为edittext实施电话号码格式 问题在于限制手机长度。
我正在使用PhoneNumberFormattingTextWatcher:
EditText telNumber = (EditText) findViewById(R.id.txt_tel);
telNumber.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
它并不限制电话号码的长度
所以我试图限制xml中编辑文本的长度:android:maxLength="16"
PhoneNumberFormattingTextWatcher 通过在某些字符之间插入空格来格式化EditText。
问题是对于不同的区域代码,它显示不同的格式并插入不同数量的空格:
+380 50 555 5555(16个字符)和
+380 5555 55555(15个字符)。
所以在第二种情况下,它允许添加一个不需要的字符。
如何解决这个问题? 也许PhoneNumberFormattingTextWatcher中有一个内置功能来限制电话号码?
如何为所有区域代码实施单一格式
成为:
+380 50 555 5555
+380 55 555 5555?
答案 0 :(得分:1)
你要找的东西是:
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
只计算输入字符,而不是它在该条件下在视图中显示的字符。
答案 1 :(得分:1)
您可以取消删除将从edittext中删除不需要的字符的电话号码。
尝试以下代码
String cell = _cellNumber_ET.getText().toString().trim();
cell = PhoneNumberUtils.stripSeparators(cell);