项目中需要用户输入手机号码,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) {}
};