标记上的不同动作单击android

时间:2014-03-27 06:31:22

标签: android google-maps

我正在研究谷歌地图android。我在地图上添加了一些标记。我需要对不同的标记执行不同的操作,例如一个标记点​​击我只想显示信息windowindow和其他标记点击我想打开一些活动。请帮助我怎么做。

2 个答案:

答案 0 :(得分:1)

请参阅官方文档中的marker_click_events

  

您可以使用OnMarkerClickListener收听点击事件   标记。当用户点击marker时,onMarkerClick(Marker)   将被调用,标记将作为参数传递。   此方法返回一个布尔值,指示您是否已使用   事件(即,您要禁止默认行为)。如果它   返回false,然后除了之外还会发生默认行为   你的自定义行为。标记点击事件的默认行为是   显示其信息窗口(如果有)。

答案 1 :(得分:0)

您可以onMarkerClickListenerGoogle API v2 documentation同意使用{/ 1}}。

您可以从Activity(或Fragment)实现侦听器,然后覆盖onMarkerClick(Marker)

例如,您的活动应该是:

public class YourActivity extends FragmentActivity
        implements OnMarkerClickListener{
        // ...
 }

然后,当您设置地图时,您可以这样做:

yourMap.setOnMarkerClickListener(this); // yorMap is a GoogleMap object

由于您已实现OnMarkerClickListner,因此需要实现onMarkerClick(Marker)

例如:

@Override
public boolean onMarkerClick(final Marker marker) {
    if (marker.equals(markerA)) {
        // action fired when markerA is clicked
    }else if(marker.equals(markerB)){
        // action fired when markerA is clicked
    }
    return false;
}

其中markerA和markerB是两个Marker个对象:

private Marker markerA;
private Marker markerB;

它应该在之前添加,例如以这种方式添加:

markerA = mMap.addMarker(new MarkerOptions()
            .position(new LatLng(LatA, LonA))
            .title("marker A"));

// the same for markerB