如何永久更改应用程序标记的行为?
How to permanently change behavior of markers for app?
我想做到这一点,以便当用户在 google 地图中创建标记时,可以双击(或按住或其他方式)并调出新的 Activity .现在我有了它,所以我可以在地图上手动创建一个标记并使用 onMarkerClickListener
等待直到单击标记以启动新的 activity。基本上,我想让所有在我的应用程序中创建的标记都共享此行为,并且我需要某种检查来区分我自己的用户标记和 Google/external 标记。
下面是代码:
public void setUsermarker() {
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
if (marker.equals(userMarker)) { //if clicked marker equals marker created by user
Intent intent = new Intent(MapsActivity.this, ObjectViewActivity.class);
startActivity(intent);
} //Otherwise just show the info window
return false;
}
});
}
您可以在 Set<String>
中添加明确添加到地图中的每个标记的 ID,以便将它们与地图上的其他标记区分开来。
文档:https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker#getId()
//instance variables:
LatLng latLng;
String title;
String snippet;
Set<String> markerIDs = new HashSet<String>();
在您的应用中添加 Marker 时,捕获返回的 Marker,获取 ID,并将 ID 添加到 Set 中:
//Adding your markers
Marker marker = mMap.addMarker(new MarkerOptions().position(latLng)
.title(title)
.snippet(snippet));
//Add each ID to the Set
String id = marker.getId();
markerIDs.add(id);
然后,在启动另一个之前检查标记 ID 是否在集合中 Activity:
public void setUsermarker() {
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
if (markerIDs.contains(marker.getId())) { //if clicked marker equals marker created by user
Intent intent = new Intent(MapsActivity.this, ObjectViewActivity.class);
startActivity(intent);
} //Otherwise just show the info window
return false;
}
});
}
我想做到这一点,以便当用户在 google 地图中创建标记时,可以双击(或按住或其他方式)并调出新的 Activity .现在我有了它,所以我可以在地图上手动创建一个标记并使用 onMarkerClickListener
等待直到单击标记以启动新的 activity。基本上,我想让所有在我的应用程序中创建的标记都共享此行为,并且我需要某种检查来区分我自己的用户标记和 Google/external 标记。
下面是代码:
public void setUsermarker() {
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
if (marker.equals(userMarker)) { //if clicked marker equals marker created by user
Intent intent = new Intent(MapsActivity.this, ObjectViewActivity.class);
startActivity(intent);
} //Otherwise just show the info window
return false;
}
});
}
您可以在 Set<String>
中添加明确添加到地图中的每个标记的 ID,以便将它们与地图上的其他标记区分开来。
文档:https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker#getId()
//instance variables:
LatLng latLng;
String title;
String snippet;
Set<String> markerIDs = new HashSet<String>();
在您的应用中添加 Marker 时,捕获返回的 Marker,获取 ID,并将 ID 添加到 Set 中:
//Adding your markers
Marker marker = mMap.addMarker(new MarkerOptions().position(latLng)
.title(title)
.snippet(snippet));
//Add each ID to the Set
String id = marker.getId();
markerIDs.add(id);
然后,在启动另一个之前检查标记 ID 是否在集合中 Activity:
public void setUsermarker() {
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
if (markerIDs.contains(marker.getId())) { //if clicked marker equals marker created by user
Intent intent = new Intent(MapsActivity.this, ObjectViewActivity.class);
startActivity(intent);
} //Otherwise just show the info window
return false;
}
});
}