Iam通過在共享首選項中使用GSON將其轉換爲json來存儲我的複雜對象。但在檢索它時,無法獲得預期的字符串。無法在共享首選項中存儲字符串(巨大)
代碼
這裏holderListCustomizationMap是複雜的對象圖。
設置共享偏好:
Gson gson = builder.create();
SharedPreferences sh=getSharedPreferences("MYFILE",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sh.edit();
String json = gson.toJson(holderListCustomizationMap);
editor.putString("Holder",json);
editor.apply();
雖然存儲,JSON打印出是整個期望的字符串。
檢索我的地圖從共享偏好:
SharedPreferences sh = context.getSharedPreferences("MYFILE", Context.MODE_PRIVATE);
String listCutomizatoinJson = sh.getString("Holder","");
當我打印listCutomizatoinJson,得到這個{}只不是整個JSON。
如果數據太大,您可以嘗試將數據保存到數據庫。 – Amsheer
使用'OrmLite'可以輕鬆快速地保存。 'SharedPreferences'不是存儲大對象的地方,而是小而關鍵的值。 – Shnkc