java - 谷歌地图 : Saving markers to text file/other?

标签 java android google-maps android-studio

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

目前,每次创建标记时,我都会将标记对象添加到 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() 等方法获取每个标记的属性。

但是,每次 Activity 被销毁时,该 arrayList 的内容也会消失,因此我觉得我需要将此信息保存在某个文件中。这是我的问题:

  1. 对象保存在文本文件中是个好主意吗?或者我应该保存字符串和整数(仅保存我需要的信息,而不是整个标记)并使用其他内容而不是文本文件(也许是共享首选项?)?
  2. 我怎样才能做到这一点?所有标记的导出和导入功能的示例将非常有帮助。
  3. 每当我旋转设备时, Activity 就会被破坏,因此所有信息都会消失。每次发生这种情况时我都必须导出和导入吗?

任何这些问题的任何帮助或见解都会有很大帮助:)

最佳答案

您可以使用内容提供程序在应用程序之间共享数据。 看到这个https://developer.android.com/guide/topics/providers/content-provider-creating.html

为了避免屏幕旋转后刷新,请将此行添加到 list 文件中

android:configChanges="keyboardHidden|方向|screenSize"

关于java - 谷歌地图 : Saving markers to text file/other?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38143092/

相关文章:

android - 导入 google-play-service 库,在此引用 android 旁边显示一个红色 X

iphone - 在通过 PhoneGap 创建的 iPhone 应用程序中使用 Google map

java - 灰熊/ Jersey : Request injected into ContainerRequestFilter is null

android - 如何使用 edittext 将项目添加到 string.xml?

android - 自定义 ListView 中的复选框和 selectAll 按钮错误

android - 将信息从 CustomDialog 传递到主 Activity

javascript - React + Google Maps JS API,动态渲染状态标记

java - 外界对tomcat服务器的思考

java - Eclipse 自动完成(百分号,在 Juno 中)

java - 使用 JSONObject Java 类的静态 getNames 方法时,Eclipse 中出现语法错误