形如:183 2185 9453
类源码:
public static int mobileChanged(CharSequence s, int start, int before, int count, EditText editText,int changdu) {
StringBuilder sb = new StringBuilder();
int index=s.length();
if(changdu<s.length()){
//如果是输入字符
switch (s.length()){
case 4:
//1832
Log.i("9私聊","4");
sb.append(s.charAt(0));
sb.append(s.charAt(1));
sb.append(s.charAt(2));
sb.append(" ");
sb.append(s.charAt(3));
index++;
editText.setText(sb.toString());
editText.setSelection(index);
break;
case 9:
//183 21859
Log.i("9私聊","9");
sb.append(s.charAt(0));
sb.append(s.charAt(1));
sb.append(s.charAt(2));
sb.append(s.charAt(3));
sb.append(s.charAt(4));
sb.append(s.charAt(5));
sb.append(s.charAt(6));
sb.append(s.charAt(7));
sb.append(" ");
sb.append(s.charAt(8));
index++;
editText.setText(sb.toString());
editText.setSelection(index);
break;
}
}else{
//删除字符
//如果是输入字符
switch (s.length()){
case 4:
//183 2
Log.i("9私聊","5");
sb.append(s.charAt(0));
sb.append(s.charAt(1));
sb.append(s.charAt(2));
index--;
editText.setText(sb.toString());
editText.setSelection(index);
break;
case 9:
//183 2185 9
Log.i("9私聊","10");
sb.append(s.charAt(0));
sb.append(s.charAt(1));
sb.append(s.charAt(2));
sb.append(s.charAt(3));
sb.append(s.charAt(4));
sb.append(s.charAt(5));
sb.append(s.charAt(6));
sb.append(s.charAt(7));
index--;
editText.setText(sb.toString());
editText.setSelection(index);
break;
}
}
return index;
}
activity里面调用:
private TextWatcher numberWatcher =new TextWatcher() {
private int changchu;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
changchu= ForNumber.mobileChanged(s,start,before,count,et_number,changchu);
}
@Override
public void afterTextChanged(Editable s) {
}
};
onTextChanged参数解释及实现EditText字数监听