Android:Position不';适配器中的t增量,用于在GridView中显示多个图像

Android:Position不';适配器中的t增量,用于在GridView中显示多个图像,gridview,xamarin.android,Gridview,Xamarin.android,我试图在网格中显示多个图像,但不知何故,在适配器位置始终保持0。它从未增加过。 我正在使用WebService存储和获取图像 输出:始终显示重复图像。例如,如果我存储了7个图像,由于位置0,它将显示第一个图像7次。请查看图像的输出 PhotoGalleryAdapter.cs: public class PhotoGalleryAdapter : BaseAdapter<bitmapImagesList> { Activity context; List<bitmapI

我试图在网格中显示多个图像,但不知何故,在适配器位置始终保持0。它从未增加过。 我正在使用WebService存储和获取图像

输出:始终显示重复图像。例如,如果我存储了7个图像,由于位置0,它将显示第一个图像7次。请查看图像的输出

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

}
public void uploadImagesGrid() 
{

var gridPhotoGallery=findviewbyd(Resource.Id.gridPhotoGallery);
lstbitmapimageslass=新列表();
foreach(lstByteArryImages中的var图像数据)
{                
var bmp=新的位图图像列表
{
bitmapImage=BitmapFactory.DecodeByteArray(imageData,0,imageData.Length)
};
lstBitmapImagesClass.Add(bmp);
}
gridPhotoGallery.Adapter=新的PhotoGalleryAdapter(此,lstBitmapImagesClass);
gridPhotoGallery.ItemClick+=委托(对象发送者,AdapterView.ItemClickEventArgs args args)
{
Toast.MakeText(this,args.Position.ToString(),ToastLength.Short).Show();
};
}

提前谢谢

您的代码看起来不错。问题可能来自您的布局。可以添加包含gridview的axml布局吗

本机android中存在同样的问题:

我已经解决了这个问题。实际上,我的C#代码和axml布局工作正常。问题是在DB端,我总是返回“for循环”中的第一行,我已经用下面的代码解决了:byte[]photo=(byte[])dt.Rows[I][“FileData”];
        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();
        };
}