0
我有一組按鈕:機器人:設置多個按鈕的選擇的onClick
[Button1]
[Button2]
[Button3]
[Button4]
[Button5]
[Button6]
所有這些都共享相同的onClick方法:
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Button b = (Button) v;
Button comp;
int i = b.getId();
selected[i] = !selected[i];
b.setSelected(selected[i]);
for (int j = 0; j < 6; j++) {
if (i != j) {
selected[j] = false;
comp = lifestyleButtonArray.get(j);
if(comp.isSelected())
comp.setSelected(selected[j]);
Log.w(TAG,"[Button] selection for button #"+j+"="+selected[j]);
}
}
}
});
所述的onClick方法的第一部分按預期工作。點擊按鈕時,切換按鈕的「選擇」值以更改按鈕的顏色(在可繪製的xml文件中定義),然後取消選擇所有其他按鈕,以便最多一個按鈕在時間。
選擇部分作品,但按鈕不會重新繪製相應的顏色,所以看來兩個按鈕被選中!
我已經試過無效和requestLayout,但這並沒有幫助。有什麼建議麼?
編輯:給這個一些更多的思考後,要問這裏真正的問題是:
如何更新一個觀點,即不從的onClick方法有何看法?
在我的例子,當我選擇按鈕1我希望能夠刪除按鈕2-6的選擇,但由於按鍵2-6是不會被調用的觀點,他們表現出了正確的選擇的值(它們是未選中),但不要將其UI視圖更新爲「未選中」的顏色!
你爲什麼不讓你的活動實現了onClickListener,再覆蓋一個方法的onClick(視圖v)爲您的所有按鈕,然後就可以在它們之間使用切換開關(v.getId(){情況R.id.btn1 ://TODO....break; case R.id.btn2:.... etc – Houcine 2011-12-14 18:40:29
因爲這是一個更大的活動,它實現了自己的onClick方法來處理另一部分代碼。需要能夠在按鈕之間切換,但我需要能夠設置按鈕的選擇值並重新繪製。 – 2011-12-14 20:35:31