我想阻止用户第二次输入EditText
中的字符,例如,如果输入数字0,则可以,但如果您想第二次输入数字0,该行动应该被取消。
换句话说,我不希望用户写00。
有什么办法吗?
答案 0 :(得分:2)
你可以这样做:
EditText editText = new EditText(this);
InputFilter inputFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
//Write your logic to remove the zero
//remove the zero here and return it.
return null;
}};
editText.setFilters(new InputFilter[]{inputFilter});
答案 1 :(得分:0)
试试这个。这个实现删除了多余的字符,但你会得到一个想法:
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int length = s.length();
for(int i=1;i<length;i++){
if (s.charAt(i-1) == s.charAt(i)) {
mEditText.setText(s.subSequence(0, i));
mEditText.setSelection(i);
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}