0

我正在使用生成航点的MapView中的itemizedOverlay。我有能力根据需要修改,添加,删除这些航点。该MapView将该屏幕作为带有listView片段的片段共享。目前,该片段的目的是显示地图中的航点,并允许它们被删除,移动或使用listFragment。所有这些现在都起作用。在itemizedOverlay下创建共享项目

我遇到的问题是两个片段都保存自己的航点列表副本。 I.E.如果我使用mapview删除航点,则itemizedOverlay类必须调用ListFragment函数以从其自己的列表中删除航点。这变得很难看,很快就会有自己的问题。在listView,itemizedOverlay或单独的类文件中有单个列表会更好。

在其他应用程序(基于C++或Java)中,我通常创建另一个类作为单例,它保存将在地图和列表视图之间共享的信息。在使用Android时,这仍然是处理此问题的最佳方式,还是有另一个更好的内置选项可供使用?

回答

0

如果您持有对扩展Application类项目的类的引用,则可以使用列表的单个实例。有关此方法的更多信息,请参阅here

+0

你回答的作品,但是,我已经建议,最好使对象Parcelable。这很简单,最后需要我使用bundle将对象传递给片段。我知道这两种方法都很简单,除了Parcelable方法有其自身的细微差别,需要编码人员按特定顺序排列物品。有更好的选择吗?看来android更喜欢Parcelable。 – orion 2012-09-17 19:29:21

+0

另一种我认为可行的方法是在保存你的两个Fragments的'Activty'中保存你的航点列表参考,并使用get和set方法访问你的航点列表。你可以使用[getActivity](http://developer.android.com/reference/android/app/Fragment.html#getActivity%28%29)方法获得'Fragment'的相关'Activity'。 – Angelo 2012-09-18 06:48:44

+0

我尝试过以及使用应用程序方法。我实际上能够完成所有三种方法,但是我只是不确定哪种方法是最好的/最干净的。 – orion 2012-09-18 16:36:42