使用Android中频繁更改的数据更新ListView

时间:2011-04-18 09:48:37

标签: android android-listview

this帖子中发布的问题询问如何在数据发生变化时更新ListView。但是,它假定在ListView中修改的数据存储在数据库中。因此,只需在将更改提交到数据库后调用requery()即可更新ListView UI。

当ListView的修改数据存储在数据库中时,应该怎么做?

例如,如果ListView中的每个项目都根据用户当前的GPS坐标显示到特定地标的距离,那么在用户移动时更新视图的更新距离的正确方法是什么?为方便起见,距离是否应该简单地存储在数据库中,以便requery()更新UI?如果没有必要坚持(频繁更改)GPS数据,这似乎不是正确的方法。

编辑:为了澄清,我特别想解决一些数据存储在数据库中的情况(例如地标的坐标),然而,频繁变化的数据是即时计算的(例如,距离)。

2 个答案:

答案 0 :(得分:1)

可以使用ArrayAdapter代替CursorAdapter。

notifyDataSetChanged()方法可用于通过重新查询分配给它的ArrayAdapter来告诉ListView刷新自己。

答案 1 :(得分:1)

我建议使用ArrayAdapter代替CursorAdapter(用于根据游标>数据库查询填充ListView)

ArrayAdapter

您应该更新存储坐标数据的数组数据。更改时,调用adapter.notifyDataSetChanged()以使用最新的数组数据更新列表

希望有所帮助