您可以创建一个HashMap 来管理标记和相关信息之间的映射。
HashMap<Marker, Data> hashMap = new HashMap<Marker, Data>();
注意:Data 是包含您所有信息(id、姓名、经度、纬度、状态、街道等)的类。
当您在地图上添加标记时,您还需要将它们添加到地图中(带有相关信息)。例如,如果您将数据放在列表中:
for(Data data : list){
Marker marker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(data.lat, data.long));
hashMap.put(marker, data);
}
然后,假设您要使用与标记关联的信息,当您单击信息窗口时,您可以执行以下操作:
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Data data = hashMap.get(marker);
if(data!=null){
Intent intent = new Intent(mContext, YourActivity.class);
intent.putExtra(YourActivity.EXTRA_MESSAGE, data);
mContext.startActivity(intent);
}
}
});
注意:数据应该实现Parcelable,或者你可以只传递id,如果从json检索到的信息是持久化的,例如在数据库中,那么在Activity收到id之后,它可以从数据库中获取所有其他信息。