Ich habe Probleme, die in der Karte im Offline-Modus zu zeigen. Ich benutzte Zucker orm, um die Datenbankmanipulation zu handhaben. Ich habe den folgenden Code verwendet.Marker-Positionen können nicht aus der Datenbank abgerufen werden
DataResponse responseNiDatabase = new Gson().fromJson(JSON_STRING, DataResponse.class);
List<Result> markersFromDatabase = new ArrayList<>();
if (responseNiDatabase != null){
markersFromDatabase = responseNiDatabase.getResult();
SugarRecord.saveInTx(markersFromDatabase);
}
else{
Toast.makeText(this, "An error occured, fetching from database", Toast.LENGTH_SHORT).show();
markersFromDatabase = Select.from(Result.class).list();
}
if (!markersFromDatabase.isEmpty()){
for (Result resultFromResponse : markersFromDatabase){
mMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(resultFromResponse.getLatitude()),
Double.parseDouble(resultFromResponse.getLongitude())))
.title(resultFromResponse.getShopName())
.snippet(resultFromResponse.getShopContact())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.icon)));
}
}
else{
Toast.makeText(this, "No markers available", Toast.LENGTH_SHORT).show();
}
Jedes Mal, wenn ich mit dem Internet verbinden, werden alle Daten vom Server abgerufen und in der lokalen Datenbank gespeichert werden. Die Sache ist, ich kann nicht verstehen, warum es nicht die Daten aus der lokalen Datenbank im Offline-Modus abruft. Dies ist das erste Mal, dass ich die Sugar-Orm-Bibliothek benutze, also hoffe ich, dass jemand da draußen mir helfen könnte. Vielen Dank.
PS. Ich benutze Google API.
Haben Sie Ihre Werteliste 'markersFromDatabase' zuvor protokolliert, wenn (! MarkersFromDatabase.isEmpty()) diese Zeile – UltimateDevil
Ja. Alle Daten wurden in der Datenbank gespeichert, wie im Logcat in Android Studio angezeigt. – Cross