一、前言:
在展示手机号码的时候,会遇到手机号按照344格式效果,这种效果的实现遇到过两次了,也踩过了许多的坑,在这里记录一下一个完美实现这种效果的方式。输入、插入、删除等光标位置停留比较好的交互效果。
二、效果:
关于输入空格崩溃的情况在简书有修复
https://www.jianshu.com/p/1c949029d6b2
三、代码实现:
public class ZpPhoneEditText extends AppCompatEditText implements TextWatcher {
// 特殊下标位置
private static final int PHONE_INDEX_3 = 3;
private static final int PHONE_INDEX_4 = 4;
private static final int PHONE_INDEX_8 = 8;
private static final int PHONE_INDEX_9 = 9;
public ZpPhoneEditText(Context context) {
super(context);
}
public ZpPhoneEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ZpPhoneEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void beforeTextChanged(CharSe