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.
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);
}