OnClickListener for CardView?

后端 未结 4 1610
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-29 01:37

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

4条回答
  •  囚心锁ツ
    2020-11-29 02:27

    This is my solution for this problem:

    1. 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
         }
      }
      
    2. 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.

提交回复
热议问题