您的位置:首页 > 其它

EditText输入手机号自动带空格

2015-07-09 14:33 633 查看
原文地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0708/3163.html

在android开发过程中,经常会要求用户输入手机号,为了便于观看,我们都会已135 xxxx xxxx这种格式展示。下面就带领大家实现这种功能。



public class PhoneTextWatcher implements TextWatcher {

private EditText _text;

public PhoneTextWatcher(EditText _text) {
this._text = _text;
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

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--;
}
}
_text.setText(sb.toString());
_text.setSelection(index);
}

}

@Override
public void afterTextChanged(Editable s) {

}
}


使用

phone= (EditText) findViewById(R.id.phone);
phone.addTextChangedListener(new PhoneTextWatcher(phone));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: