Search code examples
androidandroid-recyclerviewtoast

Show Toast When Using Llbrary Glide


I want to using RecyclerView and show images using Library Glide.

 public void onBindViewHolder(CustomViewHolder holder, int position) {
    Sisop current = sisop.get(position);
    holder.namaItemView.setText(current.nama);
    Glide.with(context)
            .load(sisop.get(position).gambar)
            .placeholder(R.mipmap.ic_launcher)
            .into(holder.img_icon);
}

how to do if when i click the image will appear toast that contains the name of the item being clicked?


Solution

  • Try this set ClickListener to your holder.img_icon like this

    public void onBindViewHolder(CustomViewHolder holder, int position) {
        Sisop current = sisop.get(position);
        holder.namaItemView.setText(current.nama);
        Glide.with(context)
                .load(sisop.get(position).gambar)
                .placeholder(R.mipmap.ic_launcher)
                .into(holder.img_icon);
          holder.img_icon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(view.getContext(),sisop.get(position).gambar +" is Clicked", Toast.LENGTH_SHORT).show();
                }
            });
    }
    

    Update as per suggetion of @v-rund-puro-hit

    class YourViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    
            ImageView img_icon;
            public CustomViewHolder(View itemView) {
                super(itemView);
                img_icon = (ImageView) itemView.findViewById(R.id.img_icon);
                img_icon.setOnClickListener(this);
            }
    
            @Override
            public void onClick(View view) {
                if(view.getId() == R.id.img_icon){
                    Toast.makeText(view.getContext(), sisop.get(getAdapterPosition()).nama+" is Clicked", Toast.LENGTH_SHORT).show();
                }
            }
        }