0
**JAVA**
package com.meghlaxshapplications.Upload_Places;

import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.meghlaxshapplications.sairsapata.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;


public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.viewHolder> {

    boolean checkState = false;

    HashMap<Integer, String> hashMap = new HashMap<>();
    private Context context;
    private List<String> images;
    private RelativeLayout btn;
    private Button buttonuploadcount;

    public GalleryAdapter(Context context, List<String> images, RelativeLayout btn, Button buttonuploadcount) {
        this.context = context;
        this.images = images;
        this.btn = btn;
        this.buttonuploadcount = buttonuploadcount;

    }

    @NonNull
    @Override
    public viewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new viewHolder(LayoutInflater.from(context).inflate(R.layout.gallery_images_item, parent, false));
    }

    @Override
    public void onBindViewHolder(@NonNull viewHolder holder, int position) {

        String image = images.get(position);

        Glide.with(context).load(image).placeholder(R.drawable.placeholder).centerCrop().into(holder.gallery_images);


        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                if (holder.image_radio.isChecked()) {

                    holder.image_radio.setChecked(false);
                    notifyItemChanged(position);

                } else {

                    holder.image_radio.setChecked(true);
                    notifyItemChanged(position);
                }


                if (holder.image_radio.isChecked()) {
                    hashMap.put(position, images.get(position));


                } else {

                    hashMap.remove(position);
                }

                if (hashMap.size() == 0) {
                    btn.setVisibility(View.GONE);
                } else {
                    btn.setVisibility(View.VISIBLE);
                }


                String count = "Upload " + hashMap.size() + " photos";


                buttonuploadcount.setText(count);

//    Log.e("Gannnn" , "nnn"+hashMap.size()+hashMap.get(position));

//          Intent intent = new Intent(context,UriPrint.class);
//          intent.putExtra("uri",hashMap.get(position));
//          context.startActivity(intent);


                //    Log.e("Choosen Images","nnnn"+"namana"+chosenImages.size());


            }
        });

    }

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

    public class viewHolder extends RecyclerView.ViewHolder {

        private RadioButton image_radio;
        private ImageView gallery_images;

        public viewHolder(@NonNull View itemView) {
            super(itemView);

            image_radio = itemView.findViewById(R.id.image_radio_button);
            gallery_images = itemView.findViewById(R.id.gallery_images);


        }


    }

    public interface PhotoListener {
        void onPhotoClick(String path);


    }

    public HashMap<Integer, String> getHashMap() {
        return hashMap;
    }

    public Boolean getCheckState() {
        return checkState;
    }
}

Explanation

Multiple radio buttons are enabled once one from the above is clicked in the recycler view. I made a recycler view we show images for gallery or external storage with a radio button for each item and random radio buttons got selected when we select some from the visible items of the recycler view.

0 Answers0