Существует только один onInfoWindowClick
слушатель на объект карты.В вашем случае вы добавляете содержимое alamat
, которое всегда будет последней строкой результата курсора (индекс столбца 3).
Если вы хотите отобразить для каждого маркера содержимое alamat
, как выПредполагается, что самый простой подход - установить в поле тега маркера содержимое alamat
, а затем в слушателе использовать поле тега маркера в тосте:
alamat = cursor.getString(3).toString();
// ...
MarkerOptions options = new MarkerOptions()
.position(endx)
.title(title)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
Marker marker = googleMap.addMarker(options);
marker.setTag(new String(alamat));
// ...
googleMap.setOnInfoWindowClickListener(new
GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Toast.makeText(getActivity(), marker.getTag().toString(), Toast.LENGTH_SHORT).show();
}
});
Вскоре вы обнаружите, что можете захотетьсделать больше, чем просто отобразить строку тега.Таким образом, вы можете использовать более сложный объект в теге или использовать идентификатор marker
в onInfoWindowClick
для доступа к управляемой коллекции данных маркеров, например, к Hashmap.