返回顶部
首页 > 资讯 > 精选 >Android 自定义输入手机号自动添加分隔符
  • 679
分享到

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

android分隔符roi 2023-05-31 04:05:22 679人浏览 泡泡鱼
摘要

比较简单的一个控件,就是加些逻辑处理而已,以前貌似是直接监听的,封装起来方便点public class AccountTxtView extends Android.support.v7.widget.AppCompatEditText {

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

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;  }}

--结束END--

本文标题: Android 自定义输入手机号自动添加分隔符

本文链接: https://lsjlt.com/news/223309.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作