У меня есть действие, в котором я получаю данные из базы данных Firebase и показываю несколько маркеров на карте. В onMarkerClick я хочу, чтобы пользователь перешел к другому действию, в котором есть сведения о маркере, который был нажат. При первом нажатии на маркер он показывает только заголовок, а при втором нажатии после выполнения запроса к базе данных Firebase он переходит к другому действию, чтобы получить идентификатор для этого маркера, чтобы были предоставлены правильные сведения о маркер, который был повернут.
Проблема в том, что когда я нажимаю на любой маркер в первый раз, а затем, если я нажимаю на любой другой маркер, открытое действие открывает подробности о маркере, который был нажат первым.
Если я нажимаюна одном и том же маркере дважды работает нормально. Но когда я вернусь к активности на карте, нажав на любой маркер в первый раз, откроются детали для маркера, который был ранее нажат.
Что можно сделать, чтобы сделать правильный запрос внутри onMarkerClick.
Вот код.
@Override
public boolean onMarkerClick(Marker marker) {
eventTitle = marker.getTitle();
q = database.getReference("events")
.orderByChild("event_title")
.equalTo(marker.getTitle());
q.addValueEventListener(vel);
Intent intent = new Intent(NearbyEventsActivity.this, EventDetailActivity.class);
Bundle bundle = new Bundle();
bundle.putString("eventid", eventid);
intent.putExtras(bundle);
if (eventid != null) {
startActivity(intent);
}
return false;
}
ValueEventListener vel = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Event e = snapshot.getValue(Event.class);
eventid = e.getEvent_id();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};