Android更改游标的顺序

时间:2014-11-25 17:18:31

标签: java android sqlite location

我google了很多,但没有找到任何问题的答案:

我有一个Cursor,它查询包含纬度和经度的表格。我想按距离订购ListView给用户。 here中的第二个答案告诉我如何按距离排序。

但现在让我们说用户移动,第二项现在比第一项更接近。我现在如何重新排序列表?

不确定我是否可以提供任何有用的代码,因为它或多或少是一般性问题。

非常感谢

1 个答案:

答案 0 :(得分:0)

如果在SQL中将排序定义为计算,那么我认为你必须重新查询。 (游标不会动态重新计算“ORDER BY”子句,这在SQL中的查询时发生。)

或者,您可以将适配器更改为由列表而不是游标支持的适配器,并实现Comparator以对数据进行排序。然后通知适配器数据已更改。假设列表中的每一行都由Item:

类型的对象支持
Collections.sort(listOfItems,new Comparator<Item>(){
public int compare(Item i1, Item i2){
    /* Compare your items here. Return
     * -1 if i1 < i2
     *  0 if i1 = i2
     *  1 if i1 > i2
     */
}});