【发布时间】:2017-09-09 22:35:18
【问题描述】:
我有一个 DefaultClusterRenderer 类和我自己的 ClusterItem,我将其用作地图上的标记。我正在使用 MarkerOptions 设置标题和 sn-p,因此我可以在我的 onInfoWindowClick 事件中抓住它们。我想启动一个新的 Activity,取决于用户单击了哪个 infoWindow,但我无法向 MarkerOptions 添加标签,因此我无法通过 Marker 参数在我的 onInfoWindowClick 方法中获取标签。
我正在寻找一个好的解决方案来为每个 ClusterItem 添加一个 id 并通过 onInfoWindowClick 中的 Marker 获取 id。
public class OwnClusterRendering extends DefaultClusterRenderer<GeoPoint> {
private GoogleMap map;
public OwnClusterRendering(Context context, GoogleMap map, ClusterManager<GeoPoint> clusterManager) {
super(context, map, clusterManager);
this.map = map;
}
protected void onBeforeClusterItemRendered(GeoPoint geoPoint, MarkerOptions markerOptions) {
markerOptions.icon(geoPoint.getIcon());
markerOptions.snippet(geoPoint.getSnippet());
markerOptions.title(geoPoint.getTitle());
super.onBeforeClusterItemRendered(geoPoint, markerOptions);
}
}
MyCustomWindowAdapter:
@Override
public void onInfoWindowClick(Marker marker) {
Log.d("test", marker.getTitle());
Log.d("test", marker.getSnippet());
Log.d("test", marker.getId());
Log.d("test", String.valueOf(marker.getTag()));
// Intent intent = new Intent(context, StoneInfoSliderActivity.class);
// context.startActivity(intent);
}
【问题讨论】:
标签: android google-maps-markers google-maps-android-api-2