android格式化手机号的功能

项目中需要用户输入手机号码,11位的手机号码想要分割成XXX XXXX XXXX的格式。需要给Edittext添加一个监听就行了。

主要代码如下:

//给手机号的输入框添加监听
phoneNumEdit.addTextChangedListener(watcherPhoneNum);

//手机号输入框的文本输入改变的监听
	private TextWatcher watcherPhoneNum = new TextWatcher() {		
		@Override
		public void onTextChanged(CharSequence s, int start, int before, int count) {

			
			//手机号格式化xxx xxxx xxxx
			if (s == null || s.length() == 0) return;
	        StringBuilder sb = new StringBuilder();
	        for (int i = 0; i < s.length(); i++) {
	            if (i != 3 && i != 8 && s.charAt(i) == ' ') {
	                continue;
	            } else {
	                sb.append(s.charAt(i));
	                if ((sb.length() == 4 || sb.length() == 9) && sb.charAt(sb.length() - 1) != ' ') {
	                    sb.insert(sb.length() - 1, ' ');
	                }
	            }
	        }
	        if (!sb.toString().equals(s.toString())) {
	            int index = start + 1;
	            if (sb.charAt(start) == ' ') {
	                if (before == 0) {
	                    index++;
	                } else {
	                    index--;
	                }
	            } else {
	                if (before == 1) {
	                    index--;
	                }
	            }
	            phoneNum.setText(sb.toString());
	            phoneNum.setSelection(index);
	        }
			
		
		}		
		@Override
		public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
		@Override
		public void afterTextChanged(Editable s) {}
		
	};


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个自己开发的Android 直接发送短信方法附上代码,Android 发短信功能,包括了对内容合法性的验证,发送完弹出提示。自己开发的直接发送短信的方法:   private void sendSMS(String telNo,String smsStr,View v){    PendingIntent pi=    PendingIntent.getActivity(this, 0, new Intent(this,Sample_11_1.class), 0);    SmsManager sms=SmsManager.getDefault();    sms.sendTextMessage(telNo, null, smsStr, pi, null);    //短信发送功给予提示    Toast.makeText(    Sample_11_1.this, //上下文    "恭喜你,短信发送功!", //提示内容    5000 //信息显示时间    ).show();    v.setEnabled(true);//短信发送完后恢复发送按钮的可用状态   }   对手机号码和短信内容的验证部分:   //获取输入的电话号码   EditText etTel=(EditText)findViewById(R.id.EditText02);   String telStr=etTel.getText().toString();   //获取输入的短信内容   EditText etSms=(EditText)findViewById(R.id.EditText01);   String smsStr=etSms.getText().toString();   //判断号码字符串是否合法   if(PhoneNumberUtils.isGlobalPhoneNumber(telStr)){//合法则发送短信    v.setEnabled(false);//短信发送完前将发送按钮设置为不可用    sendSMS(telStr,smsStr,v);   }   else{//不合法则提示    Toast.makeText(    Sample_11_1.this, //上下文    "电话号码不符合格式!!!", //提示内容    5000//信息显示时间    ).show();   }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值