0

我有一个使用谷歌地图的安卓应用程序。我的第一个活动开始一个带有一些可点击图标的地图视图。单击图标时,将使用不同的地图启动新的活动(意图)。然后从新地图中单击返回按钮,这会将我带回到我的第一张地图。但是,当我开始在地图中缩放或移动时,只会显示最初加载的图块。我怎样才能改变这个?

如果您更改手机方向,地图将刷新,然后它会正常运行(因为应用程序重新启动)所以我添加了 android:configChanges="orientation" 以停止重新启动方向更改。我补充说,因为我不想再次重新加载所有标记(使用 Web 服务并且可能需要一些时间)。

我只想在单击“返回”到原始地图时加载图块。有任何想法吗?

4

1 回答 1

3

我最近也遇到了这个问题!检查您的日志 - 您可能会收到类似“IllegalStateException:连接池已关闭”的错误。和我一样,您找到的唯一答案似乎是针对没有正确设置 Google API 密钥的人。:-\

我最终遇到了这个链接。(您通常需要登录您的 Google 帐户才能阅读这些帖子)

似乎有一个错误,每个应用程序只允许一个地图活动。我想这与地图刷新有关。我通过在加载新的地图活动后完成每个地图活动来解决它,导致当用户返回活动时,活动会被重新加载。这并不理想,但到目前为止它对我来说效果很好。

更详细地说:

  1. 保存有关您以后要检索的地图的任何信息。首先想到地图中心和地图缩放。把它放在全局的某个地方,或者按照你的意图传递它。

  2. 在启动第二个活动的意图后,在第一个活动上调用 finish()。如果您希望这两个地图向用户显示为同一个地图,那么您将需要终止在启动新活动时默认发生的滑动过渡。通过在完成()之后立即调用此行来做到这一点:

overridePendingTransition(0, 0);

  1. 当您的第二个地图活动需要完成时,如果需要,重复第 1 步,然后使用与第 2 步相同的方法加载第一个地图活动。来自 2 的代码将进入活动的 onBackPressed() 方法,以及其他任何地方适当的(也许你有一个取消按钮或其他东西)。

  2. 在第一个活动的 onCreate 中,确保检查上次查看活动时保存的内容并适当地修改您的地图。

也许这很冗长,但我经常使用这个网站,我总是很欣赏那些说得太多的答案,而不是那些说得太少的答案,哈哈!

于 2010-12-09T19:51:36.197 回答