Android 向自定义InfoWindowAdapter视图添加可注册单击的按钮
我正在添加一个带有自定义布局的InfoWindowAdapter到基于Android Google Maps API v2的地图片段中。我在从getInfoWindow()返回的视图中放置了一个按钮,虽然它显示得非常好,但当我单击所述按钮时,窗口本身会显示一个单击(像往常一样以淡黄色闪烁),而按钮不会Android 向自定义InfoWindowAdapter视图添加可注册单击的按钮,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我正在添加一个带有自定义布局的InfoWindowAdapter到基于Android Google Maps API v2的地图片段中。我在从getInfoWindow()返回的视图中放置了一个按钮,虽然它显示得非常好,但当我单击所述按钮时,窗口本身会显示一个单击(像往常一样以淡黄色闪烁),而按钮不会 如何使信息窗口中的按钮“可单击”?此外,信息窗口内的任何视图都可以扩展?虽然可以使用将信息窗口设置为任意视图,但在地图上渲染的信息窗口不是实时视图。相反,它是适配器返回视图时视图的快照(请参阅)。
如何使信息窗口中的按钮“可单击”?此外,信息窗口内的任何视图都可以扩展?虽然可以使用将信息窗口设置为任意视图,但在地图上渲染的信息窗口不是实时视图。相反,它是适配器返回视图时视图的快照(请参阅)。因此,不幸的是,一旦将其放置在地图上,它的行为与标准视图不同。相反,请使用onmarkerclicklister监听标记单击事件,并直接显示您自己的完整视图。然而,将其锚定到标记的位置可能需要更多的工作。尝试使用showAtLocation(查看父对象、整数重力、整数x、整数y)也许您可以在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();
}
});
CustomInfoWindowAdapter设置标记:
mWindow.findViewById(R.id.chat).setTag("chatTag"); // button
以及:
您好,Anthony,您在哪里找到说明它是快照的文档?我只是在你的回答中发现了这一点——但谷歌文档中没有任何内容(尽可能有限)。文档中有一条说明了这一信息。不,这不是他/她想要的。看这里:看:
@Override
public void onInfoWindowClick(Marker marker) {
if(customInfoWindowAdapter.getInfoContents(marker).findViewById(R.id.chat).getTag().equals("chatTag")) {
// any code here
}
}