18

使用 V2 地图。

基本上一切正常,包括添加标记。

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

thisMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {

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

}
);

唯一的问题是 -onMarkerClick()根本不会被调用。看不到原因 - 在最初创建地图时尝试创建侦听器,并且在放置标记后也尝试创建侦听器,没有区别。

?

4

4 回答 4

11

这对我来说很好:

GoogleMap mMap;
Marker marker_1;

初始化地图后,添加一个监听器。

mMap.setOnMarkerClickListener((OnMarkerClickListener) this);

并称之为

/**
 * 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;           
}

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

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

于 2013-04-07T08:45:51.210 回答
4

你可以使用这个简单的片段:

import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;

GoogleMap mGoogleMap;
Marker marker_1;

在 onMapReady(GoogleMap googleMap) 添加:

mGoogleMap.setOnMarkerClickListener(new OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {

            // TODO Auto-generated method stub
            if(marker.equals(marker_1)){
                Log.w("Click", "test");
                return true;
            }
            return false;

        }
    });
于 2018-01-24T14:11:17.997 回答
0

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

于 2013-04-07T08:39:48.510 回答
0

谷歌地图mMap;

用这个:

mMap.setOnMarkerClickListener((OnMarkerClickListener) this);

而不是 mMap.setOnMarkerClickListener(OnMarkerClickListener);

于 2013-11-05T04:20:46.503 回答