Recyclerview меняет только 1 значок (значок избранного), в то время как данные больше 1 - PullRequest
1 голос
/ 18 января 2020

Я пытаюсь загрузить «любимые» данные в локальную базу данных (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

скриншот здесь

1 Ответ

0 голосов
/ 18 января 2020

Попробуйте это:

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)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...