Android谷歌地图V2信息窗口

Android谷歌地图V2信息窗口,android,Android,我今天刚刚启动了一个非常基本的Android应用程序,它包含一个简单的谷歌地图和一些添加了以下代码的标记: Marker marker = map.addMarker(new MarkerOptions() .position(new LatLng(lat, lon) .title("Name") .snippet("Address") ); // end marker. 我注意到,当你点击地图上的标记时,信息窗口会自动打开。我的问题是,在打开infowindow时,我

我今天刚刚启动了一个非常基本的Android应用程序,它包含一个简单的谷歌地图和一些添加了以下代码的标记:

Marker marker = map.addMarker(new MarkerOptions()
    .position(new LatLng(lat, lon)
    .title("Name")
    .snippet("Address")
); // end marker.
我注意到,当你点击地图上的标记时,信息窗口会自动打开。我的问题是,在打开infowindow时,我应该将要执行的代码放在哪里?理想情况下,我需要它,这样当你点击一个按钮或信息窗口内的东西说“更多信息”时,一个新的屏幕就会出现,提供完整的信息

在过去和其他应用程序中,我只是在相关对象中添加了一个侦听器,然后在单击该对象时,调用了相应的onClick()方法,但由于此处自动信息窗口的性质,情况并非如此

有人能帮忙吗

您可以使用OnMarkerClickListener来侦听 标记。要在映射上设置此侦听器,请调用 setOnMarkerClickListener(OnMarkerClickListener)。当用户 单击一个标记,将调用onMarkerClick(标记),并且 标记将作为参数传递。此方法返回一个 布尔值,指示您是否已使用事件(即您 要抑制默认行为)。如果返回false,则 除了自定义行为之外,还会出现默认行为。这个 标记单击事件的默认行为是显示其信息窗口 (如果可用)并移动相机,以使标记居中 地图

您可以使用OnInfo WindowClickListener来侦听上的单击事件 一个信息窗口。要在映射上设置此侦听器,请调用 setOnInfoWindowClickListener(OnInfoWindowClickListener)。 当用户单击信息窗口时,onInfoWindowClick(标记)将 将调用,并且默认情况下信息窗口将高亮显示 突出显示颜色(Holo Blue适用于运行冰淇淋三明治和三明治的设备 较新、橙色(适用于早期版本的Android)

如前一节“信息窗口”所述,信息窗口 不是实时视图,而是将视图作为图像渲染到 地图。因此,您在视图上设置的任何侦听器都将被忽略 而且,您无法区分计算机各个部分上的单击事件 景色。建议您不要放置交互式组件-例如 作为按钮、复选框或文本输入-在自定义信息中 窗户

直接从这里的文档中获取:-

理想情况下,我需要它,这样当你点击一个按钮或信息窗口内的东西说“更多信息”时,一个新的屏幕就会出现,提供完整的信息


这是不可能的。您可以对点击整个信息窗口(
setOnInfoWindowClickListener()
)做出响应。

您需要传入一个OnMarkerClickListner类型的变量。例如myMap.setOnMarkerClickListener(本);然后让您的类在MarkerClickListener上实现这实际上不起作用,因为它从未真正进入listener方法!我有map.setOnMarkerClickListener(这个);稍后@Override public void onInfoWindowClick(Marker Marker){System.out.println(“Hello World”);}但是尽管单击了infowindow,代码却从未进入这里。对我来说很好。我假设您的地图已准备就绪(即不为空)。您需要查看更多关于如何实例化映射和设置侦听器的代码。刚刚看到您的错误,除非是打字错误。setOnMarkerClickListener()将在MarkerClick()上启动,而不是如上所述的onInfoWindowClick()。是SetOnInfo WindowClickListener()将触发OnInfo WindowClick()。抱歉,Ryan,这只是一个键入错误,对应的方法是公共布尔onMarkerClick(标记arg0),我假设它是map.setOnMarkerClickListener(此);你会开枪吗?执行map.setOnMarkerClickListener(此);就像在添加了所有PIN之后,在之前还是不重要?您好,是的,我也尝试过这个,但是您会将SetOnInfo WindowClickListener()应用于哪个对象?我猜应该是map.setOnInfoWindowClickListener()?@Jonathan:正确,
setOnInfoWindowClickListener()
谷歌地图上的一个方法。这就是问题所在,因为这是我拥有的代码,而且侦听器方法中只有一行简单的打印行,无论单击哪个信息窗口或单击其中的什么位置,它都不会打印@乔纳森:这是一个示例项目,其中显示了对
setOnInfoWindowClickListener()
的响应:非常感谢,我来看看。这一直困扰着我一段时间,为什么我不能让听众开火!谢谢