Java 更改光标的顺序

Java 更改光标的顺序,java,android,sqlite,location,Java,Android,Sqlite,Location,我在谷歌上搜索了很多,但没有找到任何问题的答案: 我得到了一个游标,用于查询包含纬度和经度的表。我想按与用户的距离订购ListView。中的第二个答案告诉我如何按距离排序 但是现在让我们假设用户移动,第二个项目现在比第一个项目更接近。现在如何重新排列我的列表 我不确定我是否能提供任何有用的代码,因为这或多或少是一个一般性问题 非常感谢如果在SQL中将排序定义为计算,那么我认为您必须重新查询。(游标不会动态地重新计算“ORDERBY”子句,这在SQL查询时发生) 或者,您可以将适配器更改为由列表而

我在谷歌上搜索了很多,但没有找到任何问题的答案:

我得到了一个游标,用于查询包含纬度和经度的表。我想按与用户的距离订购ListView。中的第二个答案告诉我如何按距离排序

但是现在让我们假设用户移动,第二个项目现在比第一个项目更接近。现在如何重新排列我的列表

我不确定我是否能提供任何有用的代码,因为这或多或少是一个一般性问题


非常感谢

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

或者,您可以将适配器更改为由列表而不是光标支持的适配器,并实现对数据进行排序。然后通知适配器数据已更改。假设列表中的每一行都有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
     */
}});
Collections.sort(listOfItems,newcomparator(){
公共整数比较(项目i1、项目i2){
/*在此处比较您的项目。返回
*-1如果i1i2
*/
}});

每次用户移动时,您都需要重新查询并重新计算
此线程中的第二个答案
。。。呵呵。。。答案的顺序正在改变dynamically@Selvin但是orderby是一个字符串,在我的片段的onCreateView方法中定义了一次。这意味着它将始终按起点排序。@tyczj我该怎么做?你是什么意思?你怎么做,你知道第一次怎么做,所以只需再次做同样的事情正如我提到的,我使用光标,所以我使用光标适配器。这就是为什么我不能使用比较仪