2011-06-16 99 views
0

我有一個列表視圖,其中包含多個小部件,例如圖像瀏覽和複選框。我有一個數組適配器和一個搜索功能的過濾器。我有的問題是我想檢查複選框,併發生了一些事情。我爲我的測試做的是檢查列表視圖頂部項目中的複選框,並打印出它的狀態。我注意到,這工作,但當我向下滾動,其他複選框也被選中。我做了一些研究,並且我意識到這是listview的一個功能,可以重複使用並進行優化,因此checked複選框正在被重用。我想知道是否有可能讓我檢查我列表中的某個項目中的複選框,並讓相應的項目變成一種顏色,而當我滾動時,其他項目不會變成相同的顏色。如何在列表視圖中設置項目的背景顏色

到目前爲止,我已經嘗試setbackgroundcolor和setimagebitmap對視圖的線性佈局,並且都有上述結果。

謝謝

要做到這一點是保持你的觀點和數據的代碼更好的分離

回答

1

真正的方式。您的數據項應該有一個域,該域反映在複選框和/或背景顏色中。這意味着當你檢查你的複選框時,你不應該直接改變背景顏色,而是改變底層數據項的值。此外,每次將數據項綁定到視圖時,都應根據此字段值設置複選框。

0

你需要什麼 - 是將複選框狀態存儲在某種數組中。在其中保存位置和狀態,然後根據位置中的數組項目在適配器設置視圖狀態。

0

如果您使用了適配器類。然後,您可以在getView托架中添加onItemClickListner。在適配器類中可用。並使用View對象和項目位置設置顏色。

相關問題