当addMarker在地图android studio中时,我只能输入标题和片段。 如何添加其他参数如id? 点击标记后我可以获得。
private void addMarker(LatLng latlng, final String title, final String deskripsi, final String id) {
markerOptions.position(latlng);
markerOptions.title(title);
markerOptions.snippet(deskripsi);
gMap.addMarker(markerOptions);
gMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Toast.makeText(getApplicationContext(), marker.getTitle(), Toast.LENGTH_SHORT).show();
}
});
}
答案 0 :(得分:3)
使用一个Hashmap存储标记和ID
private HashMap<Marker, Integer> markerIdMapping = new HashMap<>();
private void addMarker(LatLng latlng, final String title, final String deskripsi, final String id) {
markerOptions.position(latlng);
markerOptions.title(title);
markerOptions.snippet(deskripsi);
Marker marker = gMap.addMarker(markerOptions);
markerIdMapping.put(marker, id);
gMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Toast.makeText(getApplicationContext(), marker.getTitle(), Toast.LENGTH_SHORT).show();
String markerId = markerIdMapping.get(marker);
}
});
}
答案 1 :(得分:1)
您可以使用#marker.setTag
前:
Marker marker = mMap.addMarker(markerOptions);
marker.setTag([You can give here]); // marker.setTag(30)
稍后您可以使用getTag
int id = (int) marker.getTag();
答案 2 :(得分:0)
如何添加其他参数,例如id?
您希望将哪些其他字段与标记ID分开?
使用GoogleMap.addMarker
创建标记时会自动生成标记ID。您可以做的是在创建标记后,使用HashMap
映射所有标记ID并在getInfoWindow(Marker marker)
或getInfoContents(Marker marker)
内使用marker.getId()
继续。
答案 3 :(得分:0)
要唯一标识您的标记,请使用:
setTag(Object obj)
并检索,使用:
getTag()
看到这里发布的答案: How to set tag to Google Map's marker in Android?