【发布时间】:2014-03-01 10:04:01
【问题描述】:
我想以(XXX)-XXX-XXXX 格式输入电话号码EditText。但我没有得到任何解决方案。我成功输入了,但是当我使用退格键并再次输入数字时,这种格式不会出现。请给我解决方案。我的代码是
phoneEditText.addTextChangedListener(new TextWatcher() {
private int keyDel;
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
phoneEditText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL)
keyDel = 1;
return false;
}
});
if (keyDel == 0) {
int len = phoneEditText.getText().length();
if (len == 3
&& !(phoneEditText.getText().toString()
.contains("("))) {
phoneEditText.setText("("
+ phoneEditText.getText().toString().trim()
+ ")-");
phoneEditText.setSelection(phoneEditText.getText()
.length());
} else if ((len == 1 || len == 2 || len == 4 || len == 3)
&& (phoneEditText.getText().toString()
.contains("("))) {
if (len == 4)
phoneEditText.setText(phoneEditText.getText()
.toString().trim()
+ ")-");
phoneEditText.setSelection(phoneEditText.getText()
.length());
} else if (len > 3 && len == 9) {
phoneEditText.setText(phoneEditText.getText()
.toString().trim()
+ "-");
phoneEditText.setSelection(phoneEditText.getText()
.length());
} else if (len > 9 && len == 14) {
}
} else {
keyDel = 0;
}
}
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
});
【问题讨论】:
-
android:inputType="phone"
-
通过输入类型我们只能找到简单的数字。我想当用户输入电话号码时自动出现上述格式。
-
什么是“我们只能找到简单的数字”??
-
你现在有你的代码吗?可以展示一下吗?
-
你能解决这个问题吗....我也面临同样的问题
标签: android android-edittext phone-number