2 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
@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) {
}
};

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
問題是,當(dāng)我第一次點(diǎn)擊任何標(biāo)記時(shí),然后如果我點(diǎn)擊任何其他標(biāo)記,打開的活動將打開首先點(diǎn)擊的標(biāo)記的詳細(xì)信息。
Firebase 查詢異步執(zhí)行。您ValueEventListener
不會立即接到電話。
在方法內(nèi)使用第二個(gè)活動啟動代碼onDataChange
。
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Event e = snapshot.getValue(Event.class);
eventid = e.getEvent_id();
}
Intent intent = new Intent(NearbyEventsActivity.this, EventDetailActivity.class);
Bundle bundle = new Bundle();
bundle.putString("eventid", eventid);
intent.putExtras(bundle);
if (eventid != null) {
startActivity(intent);
}
}
添加回答
舉報(bào)