项目中需要用户输入手机号码,11位的手机号码想要分割成XXX XXXX XXXX的格式。需要给Edittext添加一个监听就行了。
主要代码如下:
//给手机号的输入框添加监听
phoneNumEdit.addTextChangedListener(watcherPhoneNum);
//手机号输入框的文本输入改变的监听private TextWatcher watcherPhoneNum = new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {//手机号格式化xxx xxxx xxxxif (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);}}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {}@Overridepublic void afterTextChanged(Editable s) {}};