将按钮添加到可以注册点击的自定义InfoWindowAdapter视图

我正在向基于Android Google Maps API v2的地图片段添加带有自定义布局的InfoWindowAdapter。 我在getInfoWindow()返回的视图中放了一个按钮,当它显示完全正常时,当我点击所述按钮时,窗口本身会记录一次点击(像往常一样淡黄色),而按钮没有。

如何在信息窗口中创建一个“可点击”按钮? 并且,通过扩展,信息窗口内的任何视图?

而是使用OnMarkerClickListener监听标记点击事件并直接显示您自己的完整视图。 然而,将其锚定到标记的位置可能需要更多的工作。 使用showAtLocation尝试PopupWindow (查看父级,int gravity,int x,int y)

虽然您可以使用GoogleMap.setInfoWindowAdapter()将信息窗口设置为任意视图,但在地图上呈现的信息窗口不是实时视图。 相反,它是适配器返回视图时视图的快照(请参阅此处 )。 因此,遗憾的是,一旦将其放置在地图上,它就不会像标准视图那样运行。

也许您可以在InfoWindowClickListener中设置自定义AlartDialog来切换事件

 map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() { public void onInfoWindowClick(Marker marker) { String[] items={"onefunction","twofunction"}; AlertDialog.Builder itemDilog = new AlertDialog.Builder(context); itemDilog.setTitle(""); itemDilog.setCancelable(false); itemDilog.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch(which){ case 0:{ onefunction(); }break; case 1:{ twofunction(); }break; } } }); itemDilog.show(); } });