在recyclerview中的复选框上检查更改侦听器

时间:2016-01-23 17:55:20

标签: android android-recyclerview android-checkbox

如果我在recyclerview中有一个复选框,并且还有一个已检查的更改侦听器来监听其事件,我发现即使我没有检查它们,其他一些查看者也会得到检查!!

是否因为recyclerview重新使用其查看者? 我该如何克服这个问题?

2 个答案:

答案 0 :(得分:2)

是的,Recycler视图重用其视图。事实上,这是Recycler视图的主要目的,它允许更快的滚动,因为为视图充气并为每个视图实例调用findViewById是很昂贵的。

您可以通过手动设置onBindViewHolder中的所有值来解决此问题。在您的情况下,这意味着调用checkBox.setChecked(false)将复选框恢复为默认状态。

答案 1 :(得分:1)

您应该在recyclerView中覆盖onViewRecycled函数,然后将复选框checkChangeListener设置为null,将checkedListener设置为false并调用super方法。 为我工作:)