How do I attach an OnClickListener to a CardView? I want every single card to have a different action when clicked.
I have a Recycler
This is my solution for this problem:
First add reference to View view object in ViewHolder class
public static class TouristViewHolder extends RecyclerView.ViewHolder{
public ImageView img;
public TextView name;
public TextView description;
public RatingBar rating;
public View view; // <----- here
public TouristViewHolder(final View view) {
super(view);
this.view = view; // <----- here
// ... rest of code
}
}
Next, in method onBindViewHolder(final MyViewHolder holder, final int position), I add a listener and set new Intent.
@Override
public void onBindViewHolder(TouristViewHolder touristViewHolder, final int position) {
touristViewHolder.view.setOnClickListener(new View.OnClickListener() { // <--- here
@Override
public void onClick(View v) {
Log.i("W4K","Click-"+position);
context.startActivity(new Intent(context,MainActivity.class)); // <--- here
}
});
It works for me fine, hope it will help someone else.