如何使用新图像更新gridview

时间:2014-07-25 10:45:33

标签: android gridview xamarin

adapter = new ImageAdapter(this, imagelist, imageBool, resourceName, docBool);
            adapter.NotifyDataSetChanged();
            //gridview.Adapter = null;
            gridview.InvalidateViews();
            gridview.Adapter = adapter;

我将带有新值的列表发送到imageadapter,它会将值排序并将这些项目作为图像返回并且所有内容都很好。但是,当我想要刷新项目时,旧项目保持不变,而新项目永远不会到达屏幕上。我已经尝试了很多不同的方法来重新加载网格,但它没有用。

2 个答案:

答案 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();

它会正常工作。