在我的应用程序中,它允许用户从服务器下载图像并将其存储到内部存储中。下载完成后,gridview没有更新并显示从服务器下载的图像。除非我重新启动应用程序或活动通过onCreate()
。无论如何我可以在应用程序完成下载过程后立即动态更新gridview吗?我尝试使用invalidateView()刷新视图;它也没用。任何意见将不胜感激。
的OnCreate()
final GridView imagegrid = (GridView) findViewById(R.id.WebImageGrid);
imageAdapter = new ImageAdapter();
imagegrid.setAdapter(imageAdapter);
Button loadContent = (Button) findViewById(R.id.load_btn);
loadContent.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if(load_images<count){
load_images++;
imageAdapter.LoadImage();
imagegrid.invalidateViews();
imagegrid.setAdapter(imageAdapter);
}
else{
Toast.makeText(getApplicationContext(), "Successfully load all the content. Subscribe to get more content.", Toast.LENGTH_SHORT).show();
}
}
});
答案 0 :(得分:2)
网格视图有一个函数invalidateViews()尝试使用它。它用于再次使所有视图无效或重新绘制。在下载完成后放置此行,它将再次重绘网格视图。 语法:yourGridView.invalidateViews();
答案 1 :(得分:0)
最好使用延迟加载图像概念来满足您的要求。正如您所说的那样,您正在从网上下载图像,最好是用户使用Lazy Loading概念,这样可以提供更好的性能。您可以在link处获得参考。在此链接中显示了在listview中加载图像,您的要求是gridview。使用相同的适配器,一切都将正常工作。