RecyclerView中的CheckBox无法正常运行

时间:2015-07-13 10:28:30

标签: android android-recyclerview android-checkbox

我在imageview中使用了imageView和一个复选框作为RecyclerView中的一行。我把复选框的背景放在下面的代码中。 在显示行之后,当我检查特定位置的复选框时,图像在该位置发生变化但同时在我未检查的其他位置也发生相同的效果。

帮助弄清楚错误,我没有弄错。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
    android:drawable="@drawable/ic_love_dark_red" /> <!-- pressed -->
<item android:state_checked="false"
    android:drawable="@drawable/ic_love_holo_blank" /> <!-- focused -->
<item android:drawable="@drawable/ic_love_holo_blank" />
</selector>

1 个答案:

答案 0 :(得分:2)

您不能在xml文件中具有此功能(更改状态更改后的图片),因为Checkbox小部件的单个实例将在您的RecyclerView中多次使用,取决于它显示的数据大小。基本上,RecyclerView使用View Holder模式(我邀请您阅读,如果您不熟悉它),从而使图像在多行上发生变化。 您需要做什么:

  • 有一个&#34; isChecked&#34;在您的对象中创建数据列表的属性
  • 实现对复选框的状态更改并将新更新的状态与当前对象的isChecked标志同步
  • 绑定视图持有者时,请检查该标志是true还是false,并根据该标志更新布局。

希望你能开始工作,欢呼!