как получить данные из recyclerview
У меня есть recyclerview, при смахивании должен срабатываться метод убирающий данный айтем из RoomDB, но для срабатывания метода в него надо передать айтем. В связи с этим вопрос - как получить его из RV?
Mainactivity.kt
var itemTouchHelperCallback: ItemTouchHelper.SimpleCallback = object:ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT and ItemTouchHelper.LEFT) {
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean {
return false
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
val item = rLadapter.getItem()
mUserModel.deleteData(item)
}
}
rladapter.kt
class RLadapter() : Adapter<RLadapter.RLViewHolder>() {
private var RLlist: List<itemRL> = emptyList()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RLViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.activity_card_view_r_l, parent, false)
return RLViewHolder(itemView)
}
override fun getItemCount() = RLlist.size
override fun onBindViewHolder(holder: RLViewHolder, position: Int) {
val currentitem = RLlist[position]
holder.textViewHM.setText(currentitem.HowMuchText)
holder.textViewWhere.setText(currentitem.WhereText)
holder.calendar.setText(currentitem.calendar.toString())
}
class RLViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
val textViewHM :TextView = itemView.findViewById(R.id.textViewHM)
val textViewWhere: TextView = itemView.findViewById(R.id.textViewWhere)
val calendar: TextView = itemView.findViewById(R.id.textViewCalendar)
}
fun setData(data: List<itemRL>){
this.RLlist = data
notifyDataSetChanged()
}
fun getItem(viewHolder: RLViewHolder): itemRL{
val position = viewHolder.adapterPosition
val item = RLlist.get(position)
return item
}
}
DataViewModel.kt
fun deleteAllData(){
viewModelScope.launch(Dispatchers.IO) {
repository.deleteAllData()
}
}