在输入电话号码的时候,咱们看到不少app能够输入130 xxxx xxxx的格式,即中间空一格。以下图
其实作起来也比较简单,只要在输入的时候实现TextWatcher监听就好,具体的监听代码以下:app
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即为输入电话号码的编辑框。仅这一处改变,其余按照正常操做就好。ide