5
我目前使用我的Android應用程序的Sugar ORM和Android Async Http Client。Sugar ORM不將數據保存到數據庫中
我閱讀了Sugar ORM的文檔,並且完成了那裏寫的內容。 我的HttpClient使用單例模式,並提供調用某些API的方法。
現在來了它的壞部分。我無法將數據持久保存到我的由Sugar ORM創建的數據庫中。 這裏是方法,即調用API:
public void getAvailableMarkets(final Context context, final MarketAdapter adapter) {
String url = BASE_URL.concat("/markets.json");
client.addHeader("Content-Type", "application/json");
client.addHeader("Accept", "application/json");
client.get(context, url, null, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
Log.i(TAG, "Fetched available markets from server: " + response.toString());
Result<Markets> productResult = new Result<Markets>();
productResult.setResults(new Gson().<ArrayList<Markets>>fromJson(response.toString(),
new TypeToken<ArrayList<Markets>>() {
}.getType()));
ArrayList<Markets> marketsArrayList = productResult.getResults();
// This lines tells me that there are no entries in the database
List<Markets> marketsInDb = Markets.listAll(Markets.class);
if(marketsInDb.size() < marketsArrayList.size() ||
marketsInDb.size() > marketsArrayList.size()) {
Markets.deleteAll(Markets.class);
for(Markets m : marketsArrayList) {
Markets market = new Markets(m.getId(), m.getName(), m.getChainId(), m.getLat(),
m.getLng(), m.getBusinessHourId(), m.getCountry(), m.getZip(), m.getCity(),
m.getStreet(), m.getPhoto(), m.getIcon(), m.getUrl());
market.save();
adapter.add(market);
}
adapter.notifyDataSetChanged();
}
List<Markets> market = Markets.listAll(Markets.class);
// This lines proves that Sugar ORM is not saving the entries
Log.i(TAG, "The market database list has the size of:" + market.size());
}
});
}
這是logcat的是打印:
D/Sugar: Fetching properties
I/Sugar: Markets saved : 3
I/Sugar: Markets saved : 5
I/RestClient: The market database list has the size of:0
而且我看了看糖ORM標籤在這裏計算器,但沒有答案或者問題可以給我提示如何解決這個問題。 我是Android生態系統的新手,並且很樂意幫助你們解決這個問題。 在此先感謝
你說得對。我剛纔解決了這個問題,但忘了將解決方案添加到此線程中。 以下是SugarORM的github上的問題站點: https://github.com/satyan/sugar/issues/171 – Superbyte 2014-12-03 15:15:22
因此,我們無法控制自己的id? – 2015-04-21 08:35:06
@DeanWild不幸的不是。由於這個問題有超過2500個視圖,我想告訴你們,我從SQLite和SugarORM切換到[Realm.io](https://realm.io/docs/java/latest/),我不得不說對我來說這是一個很好的選擇。 Realm是一個面向對象的數據庫,您也可以將其用於Android和iOS開發。 – Superbyte 2015-07-15 13:45:18