android - 键入时如何在开头添加一个字符到EditText
问题描述
当人们输入他们的电话号码时,我想在 editText 字段中添加一个“+”。但是,我似乎无法使用此代码添加“+”。
EditText editText = (EditText) findViewById(R.id.register_edit_phone);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable text) {
// TODO Auto-generated method stub
if (text.length() == 0) {
text.append('+');
}
}
});
我应该改变什么才能让它工作?
解决方案
下面的代码将在您的EditText
. 哪个用户不清楚。
final EditText editText = findViewById(R.id.editText);
final String prefix = "+";
editText.setText(prefix);
Selection.setSelection(editText.getText(), editText.getText().length());
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
if (!s.toString().startsWith(prefix)) {
editText.setText(prefix);
Selection.setSelection(editText.getText(), editText.getText().length());
}
}
});