Android:Position不';适配器中的t增量,用于在GridView中显示多个图像
我试图在网格中显示多个图像,但不知何故,在适配器位置始终保持0。它从未增加过。 我正在使用WebService存储和获取图像 输出:始终显示重复图像。例如,如果我存储了7个图像,由于位置0,它将显示第一个图像7次。请查看图像的输出 PhotoGalleryAdapter.cs: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
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();
};
}