How to use OnClick or onLongclick in two or more then two item in recyclearview adpter in android stuio

Here is simple method to performed two or more then two on Click or On Long Click in Adapter android studio

Step 1: create interface in Adapter Paste this above onCreateViewHolder method

 private Adpter.OnItemClickListner mlistner;
    private Adpte.OnItemLongClickListner mlonglistner;
   

    public interface OnItemClickListner {
        void onItemClick(int posistion, String type);
    }
 
    public interface OnItemLongClickListner {
        void onItemLongClick(int posistion,String type);
    }

    public void setOnItemClickListener(Adpter_CaptionSaved.OnItemClickListner listener) {
        mlistner = listener;
    }

    public void setOnItemLOngClickListener(Adpter_CaptionSaved.OnItemLongClickListner listener) {
        mlonglistner = listener;
    }

Step 2: pass mlistner and mlonglistner as a parameter into ViewHolder class

   @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_hastage_saved, parent, false);
        return new ViewHolder(v, mlistner, mlonglistner);
    }

Step 3: on Viewholder class set on Click in which element you want to performe . pass a type as a String what you to pass we use this in Mainactivity to check which element is clicked

 public class ViewHolder extends RecyclerView.ViewHolder {

     
        ImageButton btn_copy, bnt_delete, imageview_profile,imageview_full;


        public ViewHolder(@NonNull final View itemView, final        Adpter_CaptionSaved.OnItemClickListner listners, final Adpter_CaptionSaved.OnItemLongClickListner longClickListner) {
            super(itemView);

            btn_copy = itemView.findViewById(R.id.btn_hastagesaved_copy);
            bnt_delete = itemView.findViewById(R.id.btn_hastagesaved_delete);
            imageview_profile = itemView.findViewById(R.id.btn_imageview_full);
            imageview_full = itemView.findViewById(R.id.btn_imageview_full);
            
            bnt_delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (listners != null) {
                        int posistion = getAdapterPosition();
                        listners.onItemClick(posistion, "DELETE");
                    }
                }
            });

           btn_copy.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (listners != null) {
                        int posistion = getAdapterPosition();
                        listners.onItemClick(posistion, "COPY");
                    }
                }
            });

          imageview_full.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    if (longClickListner != null) {
                        int posistion = getAdapterPosition();
                        longClickListner.onItemLongClick(posistion, "FULLIMAGE");
                    }
                    return true;
                }
            });
         imageview_profile.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    if (longClickListner != null) {
                        int posistion = getAdapterPosition();
                        longClickListner.onItemLongClick(posistion, "FULLPROFILE");
                    }
                    return true;
                }
            });


        }
    }

Step 4: view this final adpter class

public class Adpter_CaptionSaved extends RecyclerView.Adapter<Adpter_CaptionSaved.ViewHolder> {

    List<List_Hastage> list_Hastage ;
    Context context;

    public Adpter_CaptionSaved(List<List_Hastage> list_hastages, Context context) {
        this.list_hastages = list_hastages;
        this.context = context;
    }

    private Adpter_CaptionSaved.OnItemClickListner mlistner;

    private Adpter_CaptionSaved.OnItemLongClickListner mlonglistner;
  
    public interface OnItemClickListner {
        void onItemClick(int posistion, String type);

    }

  
    public void setOnItemClickListener(Adpter_CaptionSaved.OnItemClickListner listener) {
        mlistner = listener;
    }

    public interface OnItemLongClickListner {
        void onItemLongClick(int posistion,String type);
    }

    public void setOnItemLOngClickListener(Adpter_CaptionSaved.OnItemLongClickListner listener) {
        mlonglistner = listener;
    }


    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_hastage_saved, parent, false);
        return new ViewHolder(v, mlistner, mlonglistner);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {

        final List_Hastage listHastage = list_hastages.get(position);

         if (!listHastagetype.getI().isEmpty()) {
            Picasso.get().load(listHastagetype.getI()).networkPolicy(NetworkPolicy.OFFLINE).into(holder.imageView, new Callback() {
                @Override
                public void onSuccess() {
                    Picasso.get().load(listHastagetype.getI()).networkPolicy(NetworkPolicy.OFFLINE).into(holder.imageView);
                }

                @Override
                public void onError(Exception e) {
                    Picasso.get().load(listHastagetype.getI()).into(holder.imageView);
                }
            });
        }

    }

    @Override
    public int getItemCount() {
        return list_hastages.size();
    }


   public class ViewHolder extends RecyclerView.ViewHolder {

     
        ImageButton btn_copy, bnt_delete, imageview_profile,imageview_full;


        public ViewHolder(@NonNull final View itemView, final Adpter_CaptionSaved.OnItemClickListner listners, final Adpter_CaptionSaved.OnItemLongClickListner longClickListner) {
            super(itemView);

            btn_copy = itemView.findViewById(R.id.btn_hastagesaved_copy);
            bnt_delete = itemView.findViewById(R.id.btn_hastagesaved_delete);
            imageview_profile = itemView.findViewById(R.id.btn_imageview_full);
            imageview_full = itemView.findViewById(R.id.btn_imageview_full);
            
            bnt_delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (listners != null) {
                        int posistion = getAdapterPosition();
                        listners.onItemClick(posistion, "DELETE");
                    }
                }
            });

           btn_copy.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (listners != null) {
                        int posistion = getAdapterPosition();
                        listners.onItemClick(posistion, "COPY");
                    }
                }
            });

          imageview_full.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    if (longClickListner != null) {
                        int posistion = getAdapterPosition();
                        longClickListner.onItemLongClick(posistion, "FULLIMAGE");
                    }
                    return true;
                }
            });
         imageview_profile.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    if (longClickListner != null) {
                        int posistion = getAdapterPosition();
                        longClickListner.onItemLongClick(posistion, "FULLPROFILE");
                    }
                    return true;
                }
            });


        }
    }



}

Step 5: now go to Mainactivity perform adpter onclick and longClickListner   

  adpter.setOnItemClickListener(new Adpter.OnItemClickListner() {
                @Override
                public void onItemClick(int posistion, String type) {
                    if (type.equals("DELETE")) {

                        // perfrom task when DELETE is clicked 
                    }
                    if (type.equals("COPY")) {

                        // perfrom task when COPY is clicked 
                    }


                }
            });

       adpter_caption.setOnItemLOngClickListener(new Adpter_CaptionSaved.OnItemLongClickListner() {
                @Override
                public void onItemLongClick(int posistion,String type) {

                   if (type.equals("FULLIMAGE")) {

                        // perfrom task when FULLIMAGE is Long clicked 
                    }
                    if (type.equals("FULLPROFILE")) {

                        // perfrom task when FULLPROFILE is Long  clicked 
                    }
                    
                }
            });

Thank You Keep Learning Keep Connected #AndroidShortCode

Comments