0
배열에서 내 firebase에서 문자열을 수신 중입니다. 토스트 메시지에서 모든 것이 잘 작동합니다. 하지만 나는 정보를 마커에 표시하고 싶다. 문제는 배열에서 마커에 마지막 정보 만 수신한다는 것입니다. 따라서 모든 마커는 동일한 정보를 갖습니다. 누군가가 내가 어떻게이 문제를 해결할 수 있는지 알고있다. 나는 이미 해결책을 찾아 보았지만 메신저를 붙잡고있다.Android 마커 infowindow는 배열에서 동일한 정보를 표시합니다.
final DatabaseReference getlats = FirebaseDatabase.getInstance().getReference().child("Events");
getlats.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
final Map<String, String> value = (Map<String, String>)dataSnapshot.getValue();
String getslat = value.get("latitude");
String getslong = value.get("longitude");
final String Img = value.get("EventImg");
final String Titel = value.get("Title");
final String Beschreibung = value.get("Desc");
final String Datum = value.get("Datum");
final String Uhrzeit = value.get("Uhrzeit");
double getlat = Double.parseDouble(getslat);
double getlong = Double.parseDouble(getslong);
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
View v = getLayoutInflater().inflate(R.layout.marker_layout, null);
ImageView EventImg = (ImageView)v.findViewById(R.id.eventimg);
TextView EventTitel = (TextView)v.findViewById(R.id.eventtitel);
TextView EventDesc = (TextView)v.findViewById(R.id.eventdescr);
TextView EventDatum = (TextView)v.findViewById(R.id.eventdatum);
TextView EventUhrzeit = (TextView)v.findViewById(R.id.eventuhrzeit);
EventTitel.setText(Titel);
EventDesc.setText(Beschreibung);
EventDatum.setText(Datum);
EventUhrzeit.setText(Uhrzeit);
Picasso.with(KarteFire.this).load(Img).resize(54, 54).into(EventImg);
return v;
}
@Override
public View getInfoContents(Marker marker) {
return null;
}
});
EventMarker = mMap.addMarker(new MarkerOptions().position(new LatLng(getlat, getlong)));
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
마커를지도에 설정되어있는 라인에 오류가 있습니다. 코드 setTag (value)를 삭제합니다. 하지만 마커를 클릭하면 추락했습니다 –
Markeroptions .setTitle (Titel)에서 문자열 제목을 설정하면 작동하지만 xml trough onInfoWindow 메소드로 설정하려는 경우 작동하지 않습니다 –
사용할 때 오류가 무엇입니까? setTag (value), 아마도 내가 대답을 편집했습니다. 한번 봐주세요. –