this帖子中发布的问题询问如何在数据发生变化时更新ListView。但是,它假定在ListView中修改的数据存储在数据库中。因此,只需在将更改提交到数据库后调用requery()即可更新ListView UI。
当ListView的修改数据不存储在数据库中时,应该怎么做?
例如,如果ListView中的每个项目都根据用户当前的GPS坐标显示到特定地标的距离,那么在用户移动时更新视图的更新距离的正确方法是什么?为方便起见,距离是否应该简单地存储在数据库中,以便requery()更新UI?如果没有必要坚持(频繁更改)GPS数据,这似乎不是正确的方法。
编辑:为了澄清,我特别想解决一些数据存储在数据库中的情况(例如地标的坐标),然而,频繁变化的数据是即时计算的(例如,距离)。
答案 0 :(得分:1)
可以使用ArrayAdapter代替CursorAdapter。
notifyDataSetChanged()方法可用于通过重新查询分配给它的ArrayAdapter来告诉ListView刷新自己。
答案 1 :(得分:1)
我建议使用ArrayAdapter
代替CursorAdapter
(用于根据游标>数据库查询填充ListView)
您应该更新存储坐标数据的数组数据。更改时,调用adapter.notifyDataSetChanged()
以使用最新的数组数据更新列表
希望有所帮助