谷歌地图:将标记保存到文本文件/其他?

时间:2016-07-01 10:29:23

标签: java android google-maps android-studio

我正在创建一个应用程序,用户可以在其中创建一组标记,然后可以选择将它们导出到某种文件中,这样不仅可以保存和重新打开地图(带标记),使用该应用程序的其他人可以将此文件导入其应用程序。

目前,每次创建标记时,我都会将标记对象添加到arrayList中。这是代码:

List<Marker> markers = new ArrayList<Marker>();

Marker m = mMap.addMarker(new MarkerOptions()
                .position(new LatLng(lati, longi))
                .title(title)
                .snippet(snippet)
                .draggable(true));
        markers.add(m);

这似乎运作得相当好;我可以通过getTitle()getSnippet()等方法获取每个标记的属性。

但是,每次活动被销毁时,这个arrayList的内容也会消失,因此我觉得我需要保存这些信息是一些文件。以下是我的问题:

  1. 对象保存在文本文件中是个好主意吗?或者我应该保存字符串和整数(只有我需要的信息,而不是整个标记)并使用其他东西而不是文本文件(也许是sharedprefences?)?
  2. 我怎么能这样做?所有标记的导出和导入功能的示例都非常有用。
  3. 每当我旋转设备时,活动都会被破坏,因此所有信息都消失了。每当这种情况发生时,我是否必须导出和导入?
  4. 任何这些问题的帮助或见解会有很多帮助:)

1 个答案:

答案 0 :(得分:1)

您可以使用内容提供商在应用之间共享数据。 请参阅此https://developer.android.com/guide/topics/providers/content-provider-creating.html

在屏幕旋转后避免刷新将此行添加到清单文件

机器人:configChanges = “keyboardHidden |取向|屏幕尺寸”