我想阻止用戶第二次輸入EditText
中的字符,例如,如果輸入數字零,則表示沒問題,但如果要第二次輸入數字零,則應取消該操作。如何避免在Android Studio中的EditBox中輸入字符?
換句話說,我不希望用戶編寫00
有沒有辦法做到這一點?
我想阻止用戶第二次輸入EditText
中的字符,例如,如果輸入數字零,則表示沒問題,但如果要第二次輸入數字零,則應取消該操作。如何避免在Android Studio中的EditBox中輸入字符?
換句話說,我不希望用戶編寫00
有沒有辦法做到這一點?
你可以這樣來做:
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});
這將不允許用戶在任何時候輸入零...已經有一些預定義的過濾器在android像日期時間過濾器allcaps過濾器等。檢出和讓我知道.. – PranavKAndro
感謝您的建議。還有一個問題,我如何刪除字符?再次感謝 –
它與返回「」; –
試試這個。此實現刪除多餘的字符,但你會得到一個想法:
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) {
}
});
}
對於這一點,你需要實現editext.addTextChangedListener(新TextWatcher() – akhilesh0707
你希望用戶只輸入唯一的字符或只有你想要取消,如果相同的字符連續輸入兩次? –