2013-01-17 46 views
2

我在做GridView活动,首先显示默认图像,然后我开始一个新的线程netowrk任务从数据库下载图像,我希望线程完成后,GridView会自动刷新网格中的图像。如何刷新android GridView

from this question我把下面的代码:

ImageAdapter adapt = (ImageAdapter)gridView.getAdapter(); 
adapt.setBitmap(bitmaps); 
adapt.notifyDataSetChanged(); 

其更新网格的适配器。 我在onResume()方法中做了这3行,但在线程完成后,我需要以某种方式调用onResume()方法(通过暂停活动或somthing simillar)。

现在,如果我移动到另一个活动(如网格图像之一),然后按后退按钮,我可以看到我刚从数据库下载的网格视图图像。 (因为它调用onPause()方法,然后onResume())

Doe的任何人都可以解决这个问题吗?

感谢

编辑: 的线程是线程结束后通过的AsyncTask

回答

0

运行我需要以某种方式调用的onResume()方法(通过暂停活动或财产以后呈三角)。

而不是调用onResume()受力,就搬完三行到一个新的方法,称之为refreshAdapter()。然后在onResume()内部拨打refreshAdapter()并随时随地使用您要刷新的适配器。

+1

它不起作用。 但问题是,我使用adapt.notifyDataSetChanged();它从第二个线程执行,它不能更新UI元素。 并且此方法正在处理UI。 –

+1

@NoamMizrachi使用runOnUiThread从线程中进行UI更改 –

+0

您是使用真正的线程还是AsyncTask?如果你使用线程,你可以创建一个简单的回调。 – Sam