android - 当数据超过1个时,recyclerview仅更改1个图标(收藏夹图标)

标签 android kotlin android-recyclerview

我正在尝试在本地数据库(sqlite)中加载“收藏夹”数据并将其显示在recyclerview中的图标中

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
    val view = holder.itemView
    val favoriteData = DatabaseHelper(view.context).loadFavoriteData() //mutablelist
    favoriteData.forEach {
        view.toggle_favorite.isChecked = data.results[position].id.toString() == it.id
    }
}

但是当我运行它时,当我喜欢的数据不止一个时,只有一个图标发生变化(切换/打开),只有数组中的最后一个数据才会显示在喜欢的图标中,例如:
mutableListOf(.., .., .., "only the latest data is taken") 

所以请帮助我,谢谢

如果您需要完整的代码,可以在这里找到https://github.com/rizkirakasiwi/MADE/blob/master/app/src/main/java/com/rizkirakasiwi/made/fragment/controller/MovieAdapter.kt

screenshot here

最佳答案

试试这个:

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
    val view = holder.itemView
    val favoriteData = DatabaseHelper(view.context).loadFavoriteData() 
    val favorite = favoriteData.find { data.results[position].id.toString() == it.id }
    view.toggle_favorite.isChecked = (favorite != null)

}

关于android - 当数据超过1个时,recyclerview仅更改1个图标(收藏夹图标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59804015/

相关文章:

java - 按下 Canvas 时如何调用方法

android - java.lang.IllegalStateException : The specified child already has a parent

java - 无法为 Spring Integration 5.0.4 (Spring 5.0.5) 创建 Kotlin 配置

android-studio - Kotlin:runOnUiThread 未解决引用

android - 类没有实现抽象基类成员 public abstract fun create(p0 : Context? , p1 : Int, p2 : Any? ): PlatformView

java - 运行 TextView 失败/Bug(单行选框)

android - SharedPreferences XML 文件会增加它的大小吗?

java - 立即加载recyclerView数据(停止延迟加载)

android-recyclerview - 反向回收器查看聊天应用程序中的项目(底部第一项)

android - 如何为通过 RecyclerView 的 'layoutManager' 属性分配的 LayoutManager 指定属性?