我正在尝试在本地数据库(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)
}