Android 在AdapterView中可见时更新视图

Android 在AdapterView中可见时更新视图,android,listview,adapter,android-adapterview,Android,Listview,Adapter,Android Adapterview,我有一组数据,我想在AdapterView中显示给用户,我还想在显示视图时在运行时更改这些数据。如何使数据已更改的对象的视图重新显示自身 例如,我有一套用户可以下载的书籍,我想显示除现有书籍外正在下载的书籍。我想更新下载进度,以便用户实时查看 在这种情况下,我应该如何通知我的视图它需要更新?我应该对视图本身进行回调,还是应该使AdapterView无效?如果我对视图进行了回调,我希望小心不要造成任何泄漏。您应该能够执行notifyDataSetChanged以强制更新视图(请参阅),这就是您所需

我有一组数据,我想在AdapterView中显示给用户,我还想在显示视图时在运行时更改这些数据。如何使数据已更改的对象的视图重新显示自身

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


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

您应该能够执行
notifyDataSetChanged
以强制更新视图(请参阅),这就是您所需要的。

谢谢。问题在于,这会强制刷新所有视图。有没有办法将此限制为仅重新绘制一个视图本身?或者我是在试图过度设计它吗?嗯,这是可能的,但是因为
ListView
s重用单个行,所以这会有点棘手。我猜您可能会在适配器的
getView
实现中使用关联数据的键标记每一行,然后在
ListView
s子视图中搜索匹配的行并使该行无效。然而,我相信
列表视图已经足够智能,可以只刷新屏幕上当前可见的视图,所以可能不值得这么麻烦。这对我来说不起作用。我需要调用
myViewList.requestLayout
?可能是因为
myAdapter.getItem
为空?