PhoneNumberFormatUtils.java
public class PhoneNumberFormatUtils implements TextWatcher {
private EditText numberEditText;
int beforeLength = 0;
int afterLength = 0;
public PhoneNumberFormatUtils(EditText numberEditText) {
this.numberEditText = numberEditText;
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
beforeLength = s.length();
}
@Override
public void afterTextChanged(Editable s) {
String txt = numberEditText.getText().toString();
afterLength = txt.length();
if (afterLength > beforeLength) {
if (txt.length() == 4 || txt.length() == 9) {
numberEditText.setText(new StringBuffer(txt).insert(txt.length() - 1, " ").toString());
numberEditText.setSelection(numberEditText.getText().length());
}
} else {
if (txt.startsWith(" ")) {
numberEditText.setText(new StringBuffer(txt).delete(afterLength - 1, afterLength).toString());
numberEditText.setSelection(numberEditText.getText().length());
}
}
}
}
使用調用:
EditText et= (EditText) findViewById(R.id.et);
et.addTextChangedListener(new PhoneNumberFormatUtils (et));
原文 EditText電話号碼格式化輸入、删除案例