I am trying to display multiple images in Grid, but somehow in adapter position always stay 0. It never incremented. I am storing and fetching images using WebService.
Output : Always displaying repeat images. E.g if I am storing 7 images , it is showing first image 7 times due to position 0. Please take a look at output with image as well.
PhotoGalleryAdapter.cs :
public class PhotoGalleryAdapter : BaseAdapter<bitmapImagesList>
{
Activity context;
List<bitmapImagesList> lstBitmapImages;
public PhotoGalleryAdapter(Activity context, List<bitmapImagesList> lstBitmapImages) : base()
{
this.context = context;
this.lstBitmapImages = lstBitmapImages;
}
public override bitmapImagesList this[int position]
{
get { return lstBitmapImages[position]; }
}
public override long GetItemId(int position)
{
return position;
}
public override int Count {
get { return lstBitmapImages.Count; } //thumbIds.Length
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var bitmapImage = lstBitmapImages[position].bitmapImage;
ImageView imageView;
if (convertView == null)
{
imageView = new ImageView(context);
// Set Parameters for Images
imageView.LayoutParameters = new GridView.LayoutParams(300, 300);
imageView.SetScaleType(ImageView.ScaleType.FitXy);
imageView.SetPadding(10, 10, 10, 10);
}
else
{
imageView = (ImageView)convertView;
}
imageView.SetImageBitmap(bitmapImage);
return imageView;
}
}
PhotoGallery.cs :
public void uploadImagesGrid()
{
var gridPhotoGallery = FindViewById<GridView>(Resource.Id.gridPhotoGallery);
lstBitmapImagesClass = new List<bitmapImagesList>();
foreach (var imageData in lstByteArryImages)
{
var bmp = new bitmapImagesList
{
bitmapImage = BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length)
};
lstBitmapImagesClass.Add(bmp);
}
gridPhotoGallery.Adapter = new PhotoGalleryAdapter(this, lstBitmapImagesClass);
gridPhotoGallery.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs args)
{
Toast.MakeText(this, args.Position.ToString(), ToastLength.Short).Show();
};
}
Thanks in Advance!