EditText输入手机号自动带空格 发表于 2015-07-09 | 分类于 AndroidUtil | 阅读次数: 转载:http://www.jcodecraeer.com/plus/view.php?aid=3163 在android开发过程中,经常会要求用户输入手机号,为了便于观看,我们都会已135 xxxx xxxx这种格式展示。 123456<EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLength="13" android:inputType="numberSigned" /> 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647final EditText editText = (EditText) findViewById(R.id.editText); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence charSequence, int start, int before, int count) { if (charSequence == null || charSequence.length() == 0) return; StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < charSequence.length(); i++) { if (i != 3 && i != 8 && charSequence.charAt(i) == ' ') { continue; } else { stringBuilder.append(charSequence.charAt(i)); if ((stringBuilder.length() == 4 || stringBuilder.length() == 9) && stringBuilder.charAt(stringBuilder.length() - 1) != ' ') { stringBuilder.insert(stringBuilder.length() - 1, ' '); } } } if (!stringBuilder.toString().equals(charSequence.toString())) { int index = start + 1; if (stringBuilder.charAt(start) == ' ') { if (before == 0) { index++; } else { index--; } } else { if (before == 1) { index--; } } editText.setText(stringBuilder.toString()); editText.setSelection(index); } } @Override public void afterTextChanged(Editable s) { } }); } 联系作者 我的微信公众号:吴小龙同学,欢迎关注交流,公号回复关键字「1024」有惊喜哦。