0
我需要在EditText
中只輸入0到20之間的偶數。然而,當我按鍵'1'和'2'給出12時,它給了我一個Toast
,在我按下鍵'2'之前,我的輸入無效。如何在TextWatcher中只允許EditText中的偶數?
Textwatcher:
public void afterTextChanged(Editable s) {
try {
int val = Integer.parseInt(s.toString());
if (val > 20) {
s.replace(0, s.length(), "20", 0, 2);
} else if (val < 0) {
s.replace(0, s.length(), "0", 0, 1);
} else if (val == 1) {
s.replace(0, s.length(), "1", 0, 2);
} else if (val == 3) {
s.replace(0, s.length(), "3", 0, 2);
} else if (val == 5) {
s.replace(0, s.length(), "5", 0, 2);
} else if (val == 7) {
s.replace(0, s.length(), "7", 0, 2);
} else if (val == 9) {
s.replace(0, s.length(), "9", 0, 2);
} else if (val == 11) {
s.replace(0, s.length(), "11", 0, 2);
} else if (val == 13) {
s.replace(0, s.length(), "13", 0, 2);
} else if (val == 15) {
s.replace(0, s.length(), "15", 0, 2);
} else if (val == 17) {
s.replace(0, s.length(), "17", 0, 2);
} else if (val == 19) {
s.replace(0, s.length(), "19", 0, 2);
}
} catch (NumberFormatException ex) {
Toast.makeText(MainActivity.this,"invalid!",Toast.LENGTH_LONG).show();
}
}
});
而是測試對用戶輸入的每一個字符的輸入,這將是簡單的,只是讓他們在號碼類型,然後打一個提交按鈕將整個值發送到您的奇數/偶數測試。然後你可以做一個'if(val%2 == 0)// val是偶數;' – NoChinDeluxe
我應該在哪裏添加你的代碼,因爲當我添加它時保持不變。 –