Search code examples
androidonclicklistenerandroid-5.0-lollipopandroid-cardview

OnClickListener for CardView?


How do I attach an OnClickListener to a CardView? I want every single card to have a different action when clicked.

I have a RecyclerView that has a custom adapter for displaying the cards. This is how it's implemented.


Solution

  • You should implement the OnItemClickListener in your ViewHolder class, and pass the current item to the ViewHolder instances on every onBindViewHolder().

    From this post:

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public View view;
        public Item currentItem;
    
        public ViewHolder(View v) {
            super(v);
            view = v;
            view.setOnClickListener(new View.OnClickListener() {
                @Override public void onClick(View v) {
                    // item clicked
                }
            });
        }
    }
    
    @Override public void onBindViewHolder(ViewHolder viewHolder, int i) {
        viewHolder.currentItem = items.get(i);
    }