gpt4 book ai didi

java - 当我点击 map 上 3 个制造商中的 1 个时如何从 Firebase 获取数据

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:39 25 4
gpt4 key购买 nike

当我点击 3 个随机标记中的 1 个时,它始终会显示名称:IJKLFirebase 中的最后数据。单击 3 个随机标记中的 1 个时如何获取数据并在 Toast 中显示数据?

Firebase 中的示例数据结构:

Name_Data :
-asdejnwiqbersad
name : ABCD

-asldmlmlwqkrioi
name : EFGH

-asldmlmlwqkrioi
name : IJKL

这是我显示数据的方式:

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Toast.makeText(MapsActivity.this,name,Toast.LENGTH_SHORT).show();
return false;
}
});

以下是我在 map 上放置这 3 个标记的方法:

refDatabase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
LatLng newlocation = new LatLng(dataSnapshot.child("latitude").getValue(Double.class),dataSnapshot.child("longitude").getValue(Double.class));
name = new String(dataSnapshot.child("name").getValue(String.class));
googleMap.addMarker(new MarkerOptions().position(newlocation).title(name));
}

@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) {

}
});

最佳答案

使用Marker#getTitle() :

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Toast.makeText(MapsActivity.this, marker.getTitle(), Toast.LENGTH_SHORT).show();
// ^^^^^^^^^^^^^^^^^
return false;
}
});

因为您通过以下方式向标记添加了名称:

googleMap.addMarker(new MarkerOptions().position(newlocation).title(name));
// ^^^^^^^^^^^^

关于java - 当我点击 map 上 3 个制造商中的 1 个时如何从 Firebase 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49511224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com