问题描述
我的Compile SDK和目标SDK是29
我的Min SDK是24
我将Android SDK的 PhoneNumberFormattingTextWatcher 本身添加到了EditText中。
<EditText
android:id="@+id/editTextView"
android:longClickable="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textCursorDrawable="@null" />
editTextView.inputType = InputType.TYPE_CLASS_PHONE
editTextView.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(15))
editTextView.addTextChangedListener(PhoneNumberFormattingTextWatcher("KR"))
这是我的输入验证的正则表达式。因此,用户将输入内容写成PhoneNumberFormattingTextWatcher格式,然后检查输入内容是否与下面的正则表达式匹配。
[010]{3}-[0-9]{3,4}-[0-9]{4}|
[011]{3}-[0-9]{3,4}-[0-9]{4}|
[016]{3}-[0-9]{3,4}-[0-9]{4}|
[017]{3}-[0-9]{3,4}-[0-9]{4}|
[018]{3}-[0-9]{3,4}-[0-9]{4}|
[019]{3}-[0-9]{3,4}-[0-9]{4}|
[0130]{4}-[0-9]{3,4}-[0-9]{3,4}|
[0-9]{4}-[0-9]{4}
它工作得很好,并且PhoneNumberFormattingTextWatcher可以格式化除Android 8.1(Oreo)设备及更低版本中的这两个输入以外的所有输入。
[016]{3}-[0-9]{3,4}-[0-9]{4}|
[0-9]{4}-[0-9]{4}
例如,在 Android 8.1(Orea)设备 中,它可以将格式 01122223333格式化为011-2222-3333 ,但它无法格式化 01622223333至016-2222-3333
由于格式复杂,我找不到任何其他文本查看器。可以是016-222-3333或016-2222-333或016-222-333或016-2222-3333
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)