Удаление элемента из RecyclerView(RoomDatabase)
У меня есть RecyclerView, в нем элементы с кнопкой, по нажатию на неё, элемент удаляется.
При нажатии срабатывает эта часть кода:
val db = Room.databaseBuilder(context, RoomDatabase::class.java, "test").allowMainThreadQueries().build()
val testDao = db.dataDAO()
holder.delete.setOnClickListener {
testDao.delete(Model(model[position].position))
notifyItemRemoved(position)
Toast.makeText(context, "delete" + model[position].position, Toast.LENGTH_SHORT).show()
}
Возникла проблема, элемент удаляется но в конце списка дублируется новый элемент, а при пере заходе в приложение список становиться таким каким должен быть, то есть без того удалённого элемента и без дублирования, я не понимаю из-за чего это происходи, пожалуйста помогите исправить код.
Мой адаптер
class AdapterRoomDatabase(private val model: List<Model>, val context: Context) : RecyclerView.Adapter<AdapterRoomDatabase.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val binding = ItemLayoutBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bind(model[position])
val db = Room.databaseBuilder(context, RoomDatabase::class.java, "test").allowMainThreadQueries().build()
val testDao = db.dataDAO()
holder.delete.setOnClickListener {
testDao.delete(Model(model[position].position))
notifyItemRemoved(position)
Toast.makeText(context, "delete" + model[position].position, Toast.LENGTH_SHORT).show()
}
}
override fun getItemCount(): Int {
return model.size
}
inner class ViewHolder(private val binding: ItemLayoutBinding) : RecyclerView.ViewHolder(binding.root) {
lateinit var delete: CardView
fun bind(note: Model) {
delete = itemView.findViewById(R.id.delete)
with(binding) {
position.text = note.position.toString()
id.text = note.id
name.text = note.name
}
}
}
}
