2011-05-19 41 views
0

我有一组数据,它我想显示在一个AdapterView,我也将要在运行时在正在显示的视图改变用户。我如何为其数据已更改的对象重新显示自己的视图?在适配器视图更新视图,同时可见

例如,我有一套书,用户可以下载,我想显示在除了目前正在书籍下载书籍。我想更新用户实时查看的下载进度。

在这种情况下,我应该如何通知我的观点,即需要更新?我应该对视图本身进行回调,还是应该使AdapterView无效?如果我对视图有回调,我想小心不要造成任何泄漏。

回答

1

您应该可以执行notifyDataSetChanged来强制更新View(请参阅http://developer.android.com/reference/android/widget/BaseAdapter.html#notifyDataSetChanged%28%29),并且这应该是您所需要的。

+0

感谢。问题在于,这会强制刷新所有视图。有没有办法限制这只有一个视图重绘本身?或者我试图对此进行过度设计? – vol 2011-05-21 16:51:02

+0

嗯,它可能,但因为'ListView's重用个别行,它会有点棘手。我猜你可能标记每一行与您的适配器的'getView'实现一键关联的数据,然后通过对匹配行'ListView's子视图搜索,只是无效该行。但是,我认为,'ListView'已经足够聪明,只刷新屏幕上当前可见的看法,所以它可能不值得费心。 – Femi 2011-05-21 17:26:17

+0

这不适合我。我需要调用'myViewList.requestLayout'吗?也许这是因为'myAdapter.getItem'是空的? – 2013-06-30 12:01:02