如何使{EditText}接受以下格式的输入:



车辆号牌(注册号(-2chars-2digit-2chars-4chars

我尝试了这个资源与一些修改自定义格式编辑文本输入,但不幸的是,我无法删除连字符(-(。每当出现连字符(-(时,我都无法删除它。请帮助我找出问题。

您无法删除连字符,因为在ontextchanged中,当您到达连字符位置时,将再次添加连字符。

您应该通过添加文本或删除文本来区分是否使用连字符

如果通过删除文本到达连字符位置,则不希望添加连字符。

您可以通过此代码if(before-count<0){进行检查

以下是的工作示例

editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

if ((editText.getText().length() + 1 == 3 || editText.getText().length() + 1 == 6 || editText.getText().length() + 1 == 9)) {
if(before-count<0){
editText.setText(editText.getText() + "-");
editText.setSelection(editText.getText().length());
}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
}

}

XML

android:maxLength="13"

相关内容

最新更新