2016-01-23 65 views
1

如果我在recyclerview中有一個複選框,並且還有一個選中的更改偵聽器來偵聽它的事件,我發現其他一些查看器也可以檢查,即使我沒有檢查它們!Checkedchange偵聽器在回收站中的複選框

是因爲recyclerview重用其視圖? 我應該如何克服這個問題?

回答

2

是的,回收商視圖重用其視圖。事實上,這是回收商視圖的主要目的,它允許更快的滾動,因爲膨脹視圖的代價很高,並且爲每個視圖實例調用findViewById

您可以通過手動設置onBindViewHolder中的所有值來解決此問題。在你的情況下,這意味着調用checkBox.setChecked(false)將複選框恢復到默認狀態。

+1

這不會給我不必要的檢查,但是對於我做的每一個檢查(checkBox.setChecked(true)),當它的onBindViewHolder被調用時,複選框會被取消選中。 –