EditText电话号码格式化输入、删除案例

    我们在输入电话号码的时候,一般都会分割一个较长的电话号码,这样的话效果会好很多。。对EditText的监听可以轻松的实现这个需求,只需要我们给对应的EditText加一个监听就OK了。。贴一下我写的一个watcher

public static class MyTextWatcher implements TextWatcher {

		private EditText numberEditText;
		private Button confirmButton;
		int beforeLen = 0;
		int afterLen = 0;

		public MyTextWatcher(EditText numberEditText, Button confirmButton) {
			this.numberEditText = numberEditText;
			this.confirmButton = confirmButton;
		}

		@Override
		public void onTextChanged(CharSequence s, int start, int before,
				int count) {
		}

		@Override
		public void beforeTextChanged(CharSequence s, int start, int count,
				int after) {
			beforeLen = s.length();
		}

		@Override
		public void afterTextChanged(Editable s) {
			String txt = numberEditText.getText().toString();
			afterLen = txt.length();

			if (afterLen > beforeLen) {
				if (txt.length() == 4 || txt.length() == 9) {
					numberEditText.setText(new StringBuffer(txt).insert(
							txt.length() - 1, " ").toString());
					numberEditText.setSelection(numberEditText.getText()
							.length());
				}
			} else {
				if (txt.startsWith(" ")) {
					numberEditText.setText(new StringBuffer(txt).delete(
							afterLen - 1, afterLen).toString());
					numberEditText.setSelection(numberEditText.getText()
							.length());

				}
			}

		}
	}


使用的时候只需要new 这个watcher,传入当前的Edittext即可

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值