0
我有一個來自網絡的JSON數組調用,並作爲一個設置爲回收視圖適配器的數組列表傳遞,第一個層次結構調用的大小爲4個元素,我想要保存這些元素到只有一列的sqlite數據庫。 JSON調用如下。如何添加JSON數組到Sqlite數據庫在Android中
private void loadJSON(){
Service serviceAPI = Client.getClient();
Call<JsonArray> loadRecipeCall = serviceAPI.readRecipeArray();
loadRecipeCall.enqueue(new Callback<JsonArray>() {
@Override
public void onResponse(Call<JsonArray> call, Response<JsonArray> response) {
try {
String recipeString = response.body().toString();
Log.i("onResponse", recipeString);
Type listType = new TypeToken<List<Recipe>>() {}.getType();
recipeList = new Gson().fromJson(recipeString, listType);
Log.i("onResponse", recipeList.toString());
recyclerView.setAdapter(new RecipeAdapter(getApplicationContext(), recipeList));
recyclerView.smoothScrollToPosition(0);
} catch (Exception e) {
Log.d("onResponse", "There is an error");
e.printStackTrace();
}
}
@Override
public void onFailure(Call<JsonArray> call, Throwable t) {
Log.d("onFailure", t.toString());
}
});
}
如何將「List recipeList」保存到SQlite數據庫中基本上我需要insertFunction結構來執行此操作。只有一個食譜名稱列的數據庫是Nuttella Pie,Brownies ......只有recipeList包含的四個名稱。
謝謝,這幫助了我,並用少量的修改工作。但啓動MainActivity的任何其他時間食譜數據保持加入到sqlite數據庫,我怎樣才能停止多個數據添加到數據庫的行動重新啓動活動 – Delaroy
你需要'insertWithOnConflict'方法......我會編輯我的答案並修復該代碼。請,upvote並接受這個帖子作爲答案,如果它幫助你 – emiraslan
我改變了一點答案。 (請參閱'編輯')。在運行此代碼之前,請確保您已取消防止並安裝應用程序。這是因爲,您需要在更改數據庫之前刪除數據庫。 或者,您可以運行'getApplicationContext()。deleteDatabase(「TESTINFO.DB」)''。但第一種方式會容易得多 – emiraslan