2012-06-19 167 views
2

我正在編寫處理2個不同CheckBoxes的應用程序。當點擊一個CheckBox時,勾號的顏色應該是藍色(而不是綠色),而其他CheckBox的顏色保持綠色。Android更改複選框選中顏色

這是我的代碼...

CheckBox green = (CheckBox) findViewById(R.id.greenButton); 
CheckBox blue = (CheckBox) findViewById(R.id.blueButton); 

blue.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
     if(arg1){ 
      blue.setHighlightColor(Color.BLUE); 
      Toast.makeText(getBaseContext(), "Question Marked As Partial", 4000).show(); 
     } 
    } 
}); 

green.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
     if(arg1){ 
      blue.setHighlightColor(Color.GREEN); 
      Toast.makeText(getBaseContext(), "Question Marked As Fully Understood!", 4000).show(); 
     } 
    } 
}); 

然而,無論是CheckBoxes刻度顏色保持綠色,並沒有得到顯示Toast消息,所以我猜測的OnCheckedChangeListener永遠不會被調用。

有人可以提供任何建議嗎?

+0

您是否嘗試過調試您的代碼或添加一些'System.out.println()'語句來檢查您的代碼是否被調用。我的猜測是,這段代碼甚至沒有被調用(所以聽衆沒有被放置在複選框上),而不是實際監聽器的問題。 – wattostudios

回答

1

如果Toast沒有出現,可能是您的聽衆實際上沒有設置在CheckBoxes上。換句話說,也許這整段代碼甚至沒有被調用。

如果您的代碼在某個方法中,請確保您正在調用方法來設置CheckBoxes上的偵聽器,或者確保此代碼位於您的主要方法之一中,如onCreate()

如果您還不知道,那將是學習如何調試代碼的好時機 - 它可以讓您快速輕鬆地確定您的代碼是否被調用。