本文主要是介绍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
这篇关于Android中EditView输入电话号码(3+4+4格式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!