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;
}
}