adapter = new ImageAdapter(this, imagelist, imageBool, resourceName, docBool);
adapter.NotifyDataSetChanged();
//gridview.Adapter = null;
gridview.InvalidateViews();
gridview.Adapter = adapter;
我将带有新值的列表发送到imageadapter,它会将值排序并将这些项目作为图像返回并且所有内容都很好。但是,当我想要刷新项目时,旧项目保持不变,而新项目永远不会到达屏幕上。我已经尝试了很多不同的方法来重新加载网格,但它没有用。
答案 0 :(得分:2)
将以下方法添加到您的自定义适配器,即。 ImageAdapter
。
// Call it once , first time when you want to pass the data to adapter
public void setImageList(List<YOUR DATA TYPE> imagelist) {
this.imagelist = imagelist;
}
// Call this method whenever new data is to be added to existing list.
public void updateImageList(List<YOUR DATA TYPE> newImagelist) {
if(this.imagelist != null){
this.imagelist.addAll(newImagelist);
}else{
this.imagelist = imagelist;
}
notifyDataSetChanged();
}
下载新数据后调用它。
答案 1 :(得分:1)
只需创建一个包含所有图像(包括旧图像和新图像)的新ImageAdapter,并将其指定给gridview。这样它可以正常工作。 之后打电话
adapter.notifyDataSetChanged();
它会正常工作。