CursorAdapter动态排序
我目前使用带有Loader
的CursorAdapter
。 Loader
加载的数据包含一个位置。 我想从最近的到最远的地方订购我的物品。 我已经计算出显示它的距离,现在我需要找到一种动态分类数据的方法。
我可能会修改CursorLoader
排序每次我的数据更改,但一次又一次地执行相同的SQL查询只是为了改变顺序看起来不知何故矫枉过正给我...
有没有办法在CursorAdapter
动态地排序数据?
您应该使用sortOrder
- CursorLoader构造函数的最后一个参数。
让我们假设你的表已列名为lat
的纬度和lon
的经度。 用户的位置也通过latitude / longitude userLat
和userLon
。 对于排序,我们不需要知道精确的距离 - 大概的距离就足够了。 为此你可以使用毕达哥拉斯定理。
sortOder
将如下所示: abs(lat - userLat)* abs(lat - userLat) + abs(lon-userLon)*abs(lon-userLon)
。 此计算仅包含Sqlite运算符。
注1:您必须更改上面的代码才能提供正确的String,其中userLat
和userLon
被替换为其值。
注2:您不能使用此公式来计算精确的距离。
链接地址: http://www.djcxy.com/p/75381.html上一篇: CursorAdapter dynamic sorting
下一篇: Is declaring the function and then defining it inline legal in C/C++?