Прежде всего, извините за дерьмовый заголовок.
Моя проблема в основном такова: в моем приложении Google Maps есть два типа маркеров.У них есть уникальные значки и информационные окна.Вы можете переключаться между ними с помощью кнопки на карте.Когда я настраивал информационное окно для одного из них, я понял, что не смогу скопировать его для другого менеджера кластера.
Мой класс в настоящее время выглядит следующим образом:
public class MapActivity extends FragmentActivity implements
OnMapReadyCallback,
ClusterManager.OnClusterItemClickListener<Shelter>
Затем я использую это для настройки:
shelterClusterManager.getMarkerCollection().setOnInfoWindowAdapter(new GoogleMap.InfoWindowAdapter()
{
@Override
public View getInfoWindow(Marker marker)
{
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View view = inflater.inflate(R.layout.custom_info_window_shelter, null);
TextView address = view.findViewById(R.id.info_window_address);
TextView occupants = view.findViewById(R.id.info_window_occupants);
TextView latitude = view.findViewById(R.id.info_window_latitude);
TextView longitude = view.findViewById(R.id.info_window_longitude);
address.append(clickedShelter.getTitle());
occupants.append(clickedShelter.getSnippet());
latitude.append("" + clickedShelter.getLatitude());
longitude.append("" + clickedShelter.getLongitude());
return view;
}
@Override
public View getInfoContents(Marker marker)
{
return null;
}
});
У меня также есть этот метод, чтобы получить ссылку наобъект (clusteritem), который был выбран:
@Override
public boolean onClusterItemClick(Shelter shelter)
{
clickedShelter = shelter;
return false;
}
По сути, сейчас все относится к классу Shelter.Теоретически мне нужно будет продублировать все это и для моего другого класса ClusterItem, но это не работает.
Буду очень признателен за помощь!Если я должен предоставить больше кода, пожалуйста, дайте мне знать.
GIF того, что я пытаюсь сделать: https://gfycat.com/glumpastgazelle