我有三個Buttons
。我希望按鈕在點擊時改變顏色,然後如果再次點擊按鈕,它會回到默認顏色。按鈕不會改變背景點擊
問題:如果我點擊第一個,它會改變顏色。但是,如果我點擊第二個,它不會改變顏色。但是如果我再次點擊第二個Button
,它會最終改變顏色。有誰知道爲什麼第二個Button
不會在第一次點擊時改變顏色?
注:調試後,我注意到is_clicked
設置爲1後,我點擊第一個Button
。所以當我點擊第二個Button
時,它認爲它已經改變了顏色並將其設置回默認值。有誰知道我可以如何正確設置is_clicked
標誌?或者還有什麼我應該做的?
int is_clicked = 0;
public void ButtonOnClick(View v) {
switch (v.getId()) {
case R.id.button1:
if (is_clicked == 1){
button_list.get(0).getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x00000000));;
is_clicked--;
break;
}
if (is_clicked == 0){
button_list.get(0).getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFF00FF00));
is_clicked++;
break;
}
break;
case R.id.button2:
if (is_clicked == 1){
button_list.get(1).getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x00000000));;
is_clicked--;
break;
}
if (is_clicked == 0){
button_list.get(1).getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFF00FF00));
is_clicked++;
break;
}
break;
case R.id.button3:
if (is_clicked == 1){
button_list.get(2).getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x00000000));;
is_clicked--;
break;
}
if (is_clicked == 0){
button_list.get(2).getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFF00FF00));
is_clicked++;
break;
}
break;
}
}
然後有三個INT is_clicked喜歡btn1_clicked,btn2_clicked,btn3_clicked – 2014-11-06 17:51:08
HM,好建議。但是在我的程序中,我實際上有50個按鈕。所以我希望我可以爲所有情況使用一個is_clicked。我簡單地將它縮短爲三個按鈕,這個例子和簡單... – user2456977 2014-11-06 17:53:14
它是一種不好的做法,設置這樣的顏色,爲什麼你不用'Selector',你可以通過2或3行代碼 – Pedram 2014-11-06 18:05:07