Android中EditView输入电话号码(3+4+4格式)


       效果如上图(支持删除自动删除空格):    支持根据国家编码显示 中国   3+4+4   美国   3+3+4


                    主要代码如下:

  public void onTextChanged(CharSequence s, int start, int before, int count) {
    String contents = s.toString();
int length = contents.length();
String code = mTvCountryCode.getText().toString();
// 根据语言进行检验
if ((code.equals("+86"))|| !isChangeLanguage && language.startsWith("zh")) {         // 86代表中国
if(length == 4){
if(contents.substring(3).equals(" ")){ // -
contents = contents.substring(0, 3);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
} else { // +
contents = contents.substring(0, 3) + " " + contents.substring(3);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
}
}
else if(length == 9){
if(contents.substring(8).equals(" ")){ // -
contents = contents.substring(0, 8);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
} else {// +
contents = contents.substring(0, 8) + " " + contents.substring(8);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
}
}
    } else if ((code.equals("+1")) || !isChangeLanguage && language.startsWith("en")) {  // 1代表美国
    if(length == 4){
if(contents.substring(3).equals(" ")){ // -
contents = contents.substring(0, 3);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
} else { // +
contents = contents.substring(0, 3) + " " + contents.substring(3);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
}
}
else if(length == 8){
if(contents.substring(7).equals(" ")){ // -
contents = contents.substring(0, 7);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
} else {// +
contents = contents.substring(0, 7) + " " + contents.substring(7);
mEdPhoneNum.setText(contents);
mEdPhoneNum.setSelection(contents.length());
}
}
    }



   }

            

          article author: 林永真

          Email:linyongzhenok@126.com   412176346@qq.com

          


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值