使用infowindowadapter将数据发送到谷歌地图

时间:2013-07-01 21:48:07

标签: android google-maps infowindow

我正在尝试使用infowindowadapter将数据传输到谷歌地图信息窗口。问题是某种鸡和蛋类型的问题。由于onPostExecute必须放在UI线程上,我需要将infowindowadapap放在onPostExecute方法中。但是,我必须使用infowindowadapter中的AsyncTask来调用数据库。有任何人对此有经验吗?感谢。

2 个答案:

答案 0 :(得分:1)

  

但是我必须使用infowindowadapter中的AsyncTask来调用数据库。

绝对不是。 <{1}}上的setInfoWindowAdapter()之后,您必须已经

支持已加载数据,因为GoogleMap无法与InfoWindowAdapter等回调异步响应。< / p>

例如,在调用getInfoContents()之前,执行查询以检索模型数据,并将setInfoWindowAdapter()(或其他)传递给Cursor子类'构造函数。

答案 1 :(得分:0)

  

我需要将infowindowadapter放在onPostExecute方法

不,你不需要。在检索GoogleMap.setInfoWindowAdapter的引用后,您通常会在GoogleMap中致电Activity.onCreate。为什么以后需要在任何地方更新InfoWindowAdapter?它使用View参数提供正确的Marker,以便感知数据。

  

我必须使用infowindowadapter中的AsyncTask来调用数据库

不,你没有这样做。我建议不要那样做。而是创建某种模型,在其中保存要在地图上显示的数据。当您第一次调用它来获取数据并且它不在内存中时,它使用异步作业来加载数据,但立即返回null。您还可以在此模型上设置观察者,并在加载完成后通知您,并使用Marker.showInfoWindow()刷新信息窗口以使用加载的数据。再次调用InfoWindowAdapter,但这次它会获取在内存中兑现的数据。

另请参阅此答案:Dynamic contents in Maps V2 InfoWindow