我有一个奇怪的问题,直到最近才出现这个问题。我有一个地图片段,它将标记添加到地图中,并将它们与'&lt;'标记ID的java地图集合相关联,它们与'&gt;'相关联,用于getInfoWindow调用。< / p>
这样可以正常工作,使用ids m0-m8将9个项目添加到地图中。然而,当我离开片段并重新输入时,标记将再次添加到地图中,并且具有唯一的数字,因此第二次围绕ID是m9-m17等。
问题是标记的onInfoClick保留了旧的ID。
CustomInfoWindowAdapter() {
mWindow = getActivity().getLayoutInflater().inflate(R.layout.custom_info_window, null);
}
@Override
public View getInfoWindow(final Marker marker) {
//Here marker.getId() is usually always a value between m0-m8
Business markerBusiness = mMarkersMap.get(marker.getId());
//Render and do other things
return mWindow();
}
如何强制addMarker()调用以忘记id之前或确保新标记与onInfoClick最终标记id匹配?为了使事情进一步复杂化,似乎这个问题只出现了我根本无法理解的某些标记!
如果需要更多代码,请告诉我,我不确定什么是必要的,每次重新创建地图片段时都会设置一个新的infoWindowAdapter:
mMap.setInfoWindowAdapter(new CustomInfoWindowAdapter());
//Add markers to the map
mMarkersMap.put(newMarker.getId(), business);