0
我在离线模式下显示地图中的时遇到问题。我用糖orm来处理数据库操作。我使用下面的代码。无法从数据库检索标记位置
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();
}
每当我连接到互联网,从服务器上的所有数据将被检索并存储在本地数据库。问题是,我不明白为什么它不在离线模式下从本地数据库检索数据。这是我第一次使用sugar orm库,所以我希望有人能帮助我。谢谢。
PS。我正在使用谷歌API。
您是否在if(!markersFromDatabase.isEmpty())此行之前记录了您的'markersFromDatabase'值列表 – UltimateDevil
是的。每个数据都保存在数据库中,如android studio中的logcat中所示。 – Cross