【发布时间】:2016-08-30 17:00:56
【问题描述】:
public class myAdapter : BaseAdapter<RootObject>
{
readonly Activity context;
List<RootObject> objects = new List<RootObject>();
Bitmap bm;
View view;
ImageView iv;
public myAdapter(Activity context, List<RootObject> objects)
{
this.context = context;
this.objects = objects;
}
public override RootObject this[int position]
{
get { return objects[position]; }
}
public override int Count
{
get { return objects.Count; }
}
public override long GetItemId(int position)
{
return position;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
RootObject obj = objects[position];
view = convertView;
if (view == null) // no view to re-use, create new
{
view = context.LayoutInflater.Inflate(Resource.Layout.listItem, null);
}
WebClient wc = new WebClient();
wc.DownloadDataCompleted += new DownloadDataCompletedEventHandler(web_DownloadDataCompleted);
wc.DownloadDataAsync(new Uri(obj.imageUrl));
iv = view.FindViewById<ImageView>(Resource.Id.Image);
view.FindViewById<TextView>(Resource.Id.tvName).Text = obj.name;
return view;
}
void web_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
if (e.Error != null)
{
}
else
{
Bitmap bm = BitmapFactory.DecodeByteArray(e.Result, 0, e.Result.Length);
runonuithread(() =>
{
iv.setimagebitmap(bm);
});
}
}
`我正在使用 xamarin (monodroid) 中的 listView。我的列表视图有一个自定义适配器。每个列表项都包含一个图像和文本视图。图片来自一个网址。在我的下载图像功能中,我使用的是 downloadDataAsync。但在下载图像之前,所有其他工作都已完成,并且我的适配器的 GetView 方法返回视图,没有图像,只有文本。返回视图后,有什么方法可以更新该图像资源。我实际上想首先显示所有 textViews,与图像并行继续下载。 提前致谢
【问题讨论】:
-
嗨@Naila 你能至少提供你的部分代码吗?将是一个很好的开始......
-
@EliasMP 我已经用代码编辑了我的问题。我们将不胜感激您的帮助。
标签: listview xamarin xamarin.android