Android 自定义输入手机号自动添加分隔符

比较简单的一个控件,就是加些逻辑处理而已,以前貌似是直接监听的,封装起来方便点

public class AccountTxtView extends android.support.v7.widget.AppCompatEditText {  private final char CUT = '-';  public AccountTxtView(Context context) {    super(context);  }  public AccountTxtView(Context context, AttributeSet attrs) {    super(context, attrs);  }  public AccountTxtView(Context context, AttributeSet attrs, int defStyleAttr) {    super(context, attrs, defStyleAttr);  }  @Override  protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {    if (text == null || text.length() == 0)      return;    StringBuilder sb = new StringBuilder();    for (int i = 0; i < text.length(); i++) {//添加分割符      if (i != 3 && i != 8 && text.charAt(i) == CUT) {        continue;      } else {        sb.append(text.charAt(i));        if ((sb.length() == 4 || sb.length() == 9)            && sb.charAt(sb.length() - 1) != CUT) {          sb.insert(sb.length() - 1, CUT);        }      }    }    //防止多次设置值    if (!sb.toString().equals(text.toString())) {      int index = start + 1;      if (sb.charAt(start) == CUT) {        if (lengthBefore == 0) {          index++;        } else {          index--;        }      } else {        if (lengthBefore == 1) {          index--;        }      }      setText(sb.toString());      setSelection(index);    }else{//删除时候判断      String line = text.subSequence(text.length() - 1, text.length()).toString();      if (line.equals(String.valueOf(CUT))) {//如果删除碰到‘-'符号,则默认去除        sb.deleteCharAt(text.subSequence(0, text.length() - 1).length());        setText(sb.toString());        setSelection(sb.length());      }    }  }  public String getPhone() {    String result = null;    String val = getText().toString();    if (val == null || val.isEmpty())      return "";    result = val.replace(String.valueOf(CUT), "");    return result;  }}

使用也简单

然后效果就出来了

输入第四个的时候自动填充‘-‘分隔符,然后删除的时候自动删除‘-‘分隔符

以上所述是小编给大家介绍的Android 自定义输入手机号自动添加分隔符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

没有什么可凭仗,只有他的好身体,没有地方可去,

Android 自定义输入手机号自动添加分隔符

相关文章:

你感兴趣的文章:

标签云: