Android 输入电话号码自动空格

来源:互联网 发布:org.apache.http.util 编辑:程序博客网 时间:2024/05/18 14:14

在输入电话号码的时候,我们看到很多app可以输入130 xxxx xxxx的格式,即中间空一格。如下图
输入电话号码自动空格
其实做起来也比较简单,只要在输入的时候实现TextWatcher监听就好,具体的监听代码如下:

phone.addTextChangedListener(new TextWatcher() {            @Override            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {            }            @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--;                        }                    }                    phone.setText(sb.toString());                    phone.setSelection(index);                }            }            @Override            public void afterTextChanged(Editable editable) {            }        });

其中phone即为输入电话号码的编辑框。仅这一处改变,其他按照正常操作就好。

0 0