android EditText输入手机号自动带空格(344格式)

在android开发过程中,有时候需要这样展示手机号:186 0000 0000。

  • 案例
    android EditText输入手机号自动带空格(344格式)_第1张图片

代码块

代码块语法遵循标准markdown代码,例如:

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

        if (charSequence == null || charSequence.length() == 0) return;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < charSequence.length(); i++) {
            if (i != 3 && i != 8 && charSequence.charAt(i) == ' ') {
                continue;
            } else {
                sb.append(charSequence.charAt(i));
                if ((sb.length() == 4 || sb.length() == 9) && sb.charAt(sb.length() - 1) != ' ') {
                    sb.insert(sb.length() - 1, ' ');
                }
            }
        }
        if (!sb.toString().equals(charSequence.toString())) {
            int index = start + 1;
            if (sb.charAt(start) == ' ') {
                if (before == 0) {
                    index++;
                } else {
                    index--;
                }
            } else {
                if (before == 1) {
                    index--;
                }
            }
            editText.setText(sb.toString());
            editText.setSelection(index);
        }

    }

你可能感兴趣的:([01]Android基础)