0
FirebaseとGoogleのAPIを使用して、Firebaseに保存した特定の座標のヒートマップを作成しています。私の問題は、ヒートマップを作成すると、Firebaseのデータがまだロードされていないため、リストにコンテンツを送信していないためにContent Providerが例外を送信するということです。リストがいっぱいになるまでヒートマップを待機させるにはどうすればよいですか?私はコードを添付:Firebaseがデータを返すまで、それは実行されませんその方法をファイヤーベースデータのヒートマップ待機を行うには? Android
mProvider = new HeatmapTileProvider.Builder()
.data(listas)
.build();
// Add a tile overlay to the map, using the heat map tile provider.
mOverlay = gmap.addTileOverlay(new TileOverlayOptions().tileProvider(mProvider));
:
public void addHeatMap()
{
List<LatLng> list = null;
// Get the data: latitude/longitude.
list = readItems();
// Create a heat map tile provider, passing it the latlngs
mProvider = new HeatmapTileProvider.Builder()
.data(list)
.build();
// Add a tile overlay to the map, using the heat map tile provider.
mOverlay = gmap.addTileOverlay(new TileOverlayOptions().tileProvider(mProvider));
}
public ArrayList<LatLng> readItems()
{
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// listas.clear();
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
Alertas al = postSnapshot.getValue(Alertas.class);
LatLng latt= new LatLng(al.getLat(),al.getLongi());
listas.add(latt);
System.out.println("This are coordinates"+ latt.toString());
Log.wtf("Message", "This too: "+latt.toString());
}
Log.wtf("List is this", listas.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return listas;
}
ありがとうございます!私はそれが愚かな間違いだったことを愚かに思う – user3487815