Как повесить onClick на каждый элемент recyclerView?

class CardAdapter: RecyclerView.Adapter<CardAdapter.CardHolder>() {

    private val cardsList = ArrayList<Card>()

    class CardHolder(item: View): RecyclerView.ViewHolder(item) {
        private val binding = CardItemBinding.bind(item)
        fun bind(card: Card) = with(binding){
            imageV.setImageResource(card.imageId)
            titleV.text = card.title
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.card_item,parent,false)
        return CardHolder(view)
    }

    override fun onBindViewHolder(holder: CardHolder, position: Int) {
        holder.bind(cardsList[position])
    }

    override fun getItemCount(): Int {
        return cardsList.size
    }

    fun addCard(card: Card){
        cardsList.add(card)
        notifyDataSetChanged()
    }

    fun removeCard(){
        if(cardsList.size != 0){
            cardsList.removeAt(cardsList.size - 1)
            notifyDataSetChanged()
        }
    }
}

Ответы (1 шт):

Автор решения: Wlad
   class CardHolder(itemV: View) : RecyclerView.ViewHolder(itemV) {       
        val delete: ImageView = itemV.findViewById(R.id.delete_img)
    }



override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardHolder {
    val view = LayoutInflater.from(parent.context).inflate(R.layout.card_item,parent,false)
    val holder = CardHolder(view)

     holder.itemView.setOnClickListener {
          // просто клик итема
        }

      holder.delete.setOnClickListener {
          // это клик на View,внутри итема, где delete - какая-то View'шка которую ты уже обозначил в самом Холедере

       // cardsList[holder.adapterPosition] - нажатый элемент массива 
          
      }


    return holder
}
→ Ссылка