【发布时间】:2012-05-12 19:21:58
【问题描述】:
所以我的问题似乎很简单,但看在上帝的份上,我无法弄清楚。所以我请求你的帮助。我在包含商店的移动应用程序中有一个简单的列表。我想将它们缩短到与地图中心的距离。
似乎我需要一个自定义排序功能,但我不确定我必须在其中做什么。
我正在使用
testDist.setLatLng(propertyList.selectedItem.lat,propertyList.selectedItem.lng);
dist.text=""+GeodesicCalculatorUtil.calculateGeodesicDistance(FlexGlobals.topLevelApplication.currentLatLng2,testDist,DistanceUnits.KILOMETERS)
要获得一家商店的距离,我必须将其与下一家进行比较。但是我不知道如何在比较功能中做到这一点。如果有人可以帮助我,我会很高兴。
【问题讨论】:
-
您的列表数据类型是什么?一个数组集合?你试图做些什么来排序它?您是否阅读过这些文档:livedocs.adobe.com/flex/3/html/…
-
我从 php 服务获取我的数据,我列表的数据提供者从那里定义为
我使用 lat 和 lng 来获取距离我需要用于排序。 -
看起来 AsyncListView 不像 ArrayCollection 或 XMLListCollection 那样具有任何排序功能。您可以考虑切换;或在检索数据之前在服务器端对数据进行排序。
-
如果只使用数据库中的字段进行排序,它实际上工作得很好。我的问题是我不知道如何使用自定义函数对列表进行排序。例如,我可以使用数据库中的 lat 对列表进行排序。但是我想先做一些计算,然后再做 lat+1 。
-
你不需要在 Flex 中对 List 类进行排序,因为它只是一个显示类。您可以根据数据类型对 List 的 dataProvider 进行排序。 ArrayCollection 或 XMLListCollection 提供了我上面链接的内置排序功能。 ASyncListView 没有。要在 Collection 类中对数据执行计算或其他处理,您可以使用 sortCompareFunction。
标签: apache-flex list sorting collections adobe