CursorAdapter动态排序

我目前使用带有LoaderCursorAdapterLoader加载的数据包含一个位置。 我想从最近的到最远的地方订购我的物品。 我已经计算出显示它的距离,现在我需要找到一种动态分类数据的方法。

我可能会修改CursorLoader排序每次我的数据更改,但一次又一次地执行相同的SQL查询只是为了改变顺序看起来不知何故矫枉过正给我...

有没有办法在CursorAdapter动态地排序数据?


您应该使用sortOrder - CursorLoader构造函数的最后一个参数。

让我们假设你的表已列名为lat的纬度和lon的经度。 用户的位置也通过latitude / longitude userLatuserLon 。 对于排序,我们不需要知道精确的距离 - 大概的距离就足够了。 为此你可以使用毕达哥拉斯定理。

sortOder将如下所示: abs(lat - userLat)* abs(lat - userLat) + abs(lon-userLon)*abs(lon-userLon) 。 此计算仅包含Sqlite运算符。

注1:您必须更改上面的代码才能提供正确的String,其中userLatuserLon被替换为其值。

注2:您不能使用此公式来计算精确的距离。

链接地址: http://www.djcxy.com/p/75381.html

上一篇: CursorAdapter dynamic sorting

下一篇: Is declaring the function and then defining it inline legal in C/C++?