无法让GoogleMap OnMarkerClickListener正常运行

nmw*_*223 13 android google-maps google-maps-markers

使用V2地图.

基本上都工作,包括添加标记.

但是,我需要在点击标记时采取措施,所以我安装了一个处理程序:

thisMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {

    @Override public boolean onMarkerClick(Marker marker) {
        //  Take some action here
        return true;
    }

}
);
Run Code Online (Sandbox Code Playgroud)

唯一的问题是 - onMarkerClick()永远不会被调用.无法理解为什么 - 尝试在最初创建地图时创建侦听器,并且在标记放置到位之后,没有区别.

Sha*_*ien 8

这对我来说很好:

GoogleMap mMap;
Marker marker_1;
Run Code Online (Sandbox Code Playgroud)

初始化map后,为其添加一个侦听器.

mMap.setOnMarkerClickListener((OnMarkerClickListener) this);
Run Code Online (Sandbox Code Playgroud)

并称之为

/**
 * handle marker click event
 */    
@Override
public boolean onMarkerClick(Marker marker) {
    // TODO Auto-generated method stub
    if(marker.equals(marker_1)){
        Log.w("Click", "test");
        return true;
    }
        return false;           
}
Run Code Online (Sandbox Code Playgroud)

如果它返回"true",则正在正确处理click事件.如果单击一个标记并返回false,它将像往常一样弹出信息窗口.

根据Android文档,如果侦听器已经消耗了事件(即,不应该发生默认行为),则单击的标记返回true,否则返回false(即,应该发生默认行为).默认行为是相机移动到地图并显示信息窗口.


nmw*_*223 0

设法通过使用 OnInfoWindowClickListener 来让它工作。但不知道为什么它不会响应标记点击。