0

I'm trying to select multiple images from gallery and display it in gridview using this Library as well get path for each image so I can save the in database..my issue is when I select images that I want They don't appear in gridview..I trying to use breakpoints to debug code but still not clear for me what goes wrong

here is my code Myfragment

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_venue_imges, container, false);
    gvGallery = view.findViewById(R.id.mygrid);
    selectImage = view.findViewById(R.id.uploadimageButton0);
    selectImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            FishBun.with(getActivity()).setImageAdapter(new PicassoAdapter())
                    .setMaxCount(5)
                    .setMinCount(1)
                    .startAlbum();
    });

   @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == FishBun.FISHBUN_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
            //   path = imageData.getStringArrayListExtra(FishBun.INTENT_PATH);
            // you can get an image path(ArrayList<String>) on <0.6.2

            mArrayUri = data.getParcelableArrayListExtra(FishBun.INTENT_PATH);


            for (int i = 0; i < mArrayUri.size(); i++) {
                Uri uri=Uri.parse(mArrayUri.get(i).getPath());
                mArrayUri.add(uri);

                myAdapter = new ImageAdapter(getActivity(),mArrayUri);
                gvGallery.setAdapter(myAdapter);
               // myAdapter.addToList(uri);

ImageAdapter

public class ImageAdapter extends BaseAdapter {
    private Context ctx;
    private int pos;
    private LayoutInflater inflater;
    private ImageView mImageView;
    ArrayList<Uri> mArrayUri;

    public ImageAdapter(Context ctx, ArrayList<Uri> mArrayUri) {

        this.ctx = ctx;
        this.mArrayUri = mArrayUri;
    }

    @Override
    public int getCount() {
        return mArrayUri.size();
    }

    @Override
    public Object getItem(int position) {
        return mArrayUri.get(position);
    }
    void addToList(Uri uriPath)
    {
        this.mArrayUri.add(uriPath);
        this.notifyDataSetChanged();
    }
    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
  
        View view = convertView;

        ViewHolder holder;
        Bitmap bitmap;
        if (view == null) {
            holder = new ViewHolder();
            LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.images_item, null);
            //view = ctx.getLayoutInflater().inflate(R.layout.images_item, null);
            holder.mImageView = (ImageView) view.findViewById(R.id.imageView_Gallery);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }

        if (Build.VERSION.SDK_INT >= 29) {
            ImageDecoder.Source source = ImageDecoder.createSource(ctx.getContentResolver(), mArrayUri.get(position));
            try {
                bitmap = ImageDecoder.decodeBitmap(source);
                mImageView.setImageBitmap(bitmap);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            try {
                bitmap = MediaStore.Images.Media.getBitmap(ctx.getContentResolver(), mArrayUri.get(position));
                mImageView.setImageBitmap(bitmap);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

            return view;
        }

        class ViewHolder {
            private ImageView  mImageView;
        }
    }
lolo
  • 83
  • 1
  • 8

1 Answers1

0

I found solution to my query that OnActivityResult not called so that's why nothing is displayed in gridview this was helpful for this issue

lolo
  • 83
  • 1
  • 8