Я делаю это в своем приложении, когда хочу обновить один маркер, поэтому я не уверен, что это может быть полезно для вас, поскольку кажется, что вы вызываете совершенно новый набор clusterItems.
В моем классе есть следующие поля:
//declaring a clicked item
private PropertyModel clickedPropertyModelClusterItem;
private Marker clickedMarker;
Когда я нажимаю на infoWindow, этот метод вызывается:
mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<PropertyModel>(){
@Override
public boolean onClusterItemClick(PropertyModel propertyModelItem){
clickedPropertyModelClusterItem = propertyModelItem;
return false;
}
});
В моем методе getInfoContents я назначаю маркер в параметре для созданного поля, чтобы отслеживать его:
@Override
public View getInfoContents(final Marker marker) {
clickedMarker = marker;
//set the values of InfoWindows as usual
}
Теперь вместо вызова mClusterManager.clearItems () я обновляю свой clickedPropertyModelClusterItem:
clickedPropertyModelClusterItem.setTitle(propertyModel.getTitle());
Наконец, я вызываю метод showInfoWindow для маркера:
//update the InfoWindow
clickedMarker.showInfoWindow();
Надеюсь, это поможет вам.