天天看點

手機号碼格式化輸入工具 PhoneNumberFormatUtils

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電話号碼格式化輸入、删除案例