我正在使用谷歌地图库开发基于位置的应用程序。事实上,整个应用逻辑就像谷歌地图应用程序,期望我们搜索,发送我们自己的数据(当然,他们有地理信息)。
您可以将我们的数据视为谷歌提供的另一种POI。
MainActivity
包含MapView
,而用户可以按名称或关键字搜索我们的数据,然后我们会在地图中显示这些数据(使用标记),用户也可以跳转到{{ 1}}活动,以查看从ResutlListActivity
传递的所有结果。
用户点击MainActivity
中的某个项目后,系统会将其重定向到ResultActivity
,该MainActivity
会突出显示该项目(从ResultActivity
传递)。
此外,用户可以在DetailActivity
中查看数据项的详细信息,用户也可以返回MainActivity
,用户可以在DetailActivity
中搜索附近的数据,显示得到ResutlListActivity
和MainActivity
。
正如您所看到的,MainActivity
有如此多的入口点,如下所示:
更重要的是,我们仍然拥有像google这样的驱动程序计划功能,也就是说一项活动与另一项活动之间存在太多的互动,我必须让它们保持同步。
当我说“同步”时,我的意思是如果用户点击ResultListActivity
中的数据项“xx”,那么当他输入MainActivity
时,我必须将MainActivity
更新为显示项目“xx”
同步工作让我发疯,因为你必须判断每种可能的情况,以决定你应该相应显示哪种数据。
然后我找到Fragment
,我有一个想法:在我的应用程序中只使用一个活动,其中包含所有其他UI作为片段,如下所示:
在这种情况下,以“查询数据”为例,当我从服务器获取数据项时,我将它们添加到地图中,并在ResultFragment
显示它们,无论这个片段是否可见,当用户想要查看结果时,我只需要将ResultFragment
设置为可见,并将其设置在内容视图的前面(覆盖MapView
)。其他片段也是如此。
如果这是可以接受的话,我是否拥有?