【发布时间】:2014-07-25 06:21:30
【问题描述】:
我正在通过这个reference 在标记上显示自定义信息窗口。 现在我可以显示自定义 infoWindow 了
但问题是我无法在每个按钮上获得右键单击事件。 例如当我点击 button1 时,它会调用 button2 的 touchlistener 等等。 我的代码是:
this.button1Listener = new OnInfoWindowElemTouchListener(
button1, getResources().getDrawable(
R.drawable.ic_plusone_medium_off_client),
getResources().getDrawable(
R.drawable.ic_plusone_tall_off_client)) {
@Override
protected void onClickConfirmed(View v, Marker marker) {
// Here we can perform some action triggered after clicking the
// button
Toast.makeText(MapActivity.this, "Button1", Toast.LENGTH_SHORT)
.show();
}
};
this.button2Listener = new OnInfoWindowElemTouchListener(
button2, getResources().getDrawable(
R.drawable.ic_plusone_medium_off_client),
getResources().getDrawable(
R.drawable.ic_plusone_tall_off_client)) {
@Override
protected void onClickConfirmed(View v, Marker marker) {
// Here we can perform some action triggered after clicking the
// button
Toast.makeText(MapActivity.this, "Button2", Toast.LENGTH_SHORT)
.show();
}
};
this.button3Listener = new OnInfoWindowElemTouchListener(
button3, getResources().getDrawable(
R.drawable.ic_plusone_medium_off_client),
getResources().getDrawable(
R.drawable.ic_plusone_tall_off_client)) {
@Override
protected void onClickConfirmed(View v, Marker marker) {
// Here we can perform some action triggered after clicking the
// button
Toast.makeText(MapActivity.this, "Button3", Toast.LENGTH_SHORT)
.show();
}
}; and so on.......
this.button1.setOnTouchListener(button1Listener);
this.button2.setOnTouchListener(button2Listener);
this.button3.setOnTouchListener(button3Listener);
.......
// googleMap.setInfoWindowAdapter(null);
googleMap.setInfoWindowAdapter(new InfoWindowAdapter() {
// Use default InfoWindow frame
@Override
public View getInfoWindow(Marker marker) {
return null;
}
// Defines the contents of the InfoWindow
@Override
public View getInfoContents(Marker marker) {
button1Listener.setMarker(marker);
button2Listener.setMarker(marker);
button3Listener.setMarker(marker);
......
// We must call this to set the current marker and infoWindow
// references
// to the MapWrapperLayout
mapWrapperLayout.setMarkerWithInfoWindow(marker, infoWindow);
return infoWindow;
}
});
请告诉我,我做错了什么? 有时代码可以完美运行,但大多数时候它不起作用。 提前致谢。
【问题讨论】:
标签: android google-maps google-maps-markers infowindow