我通过在共享首选项中使用 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 会打印出完整的预期字符串。
从共享首选项中检索我的 map :
SharedPreferences sh = context.getSharedPreferences("MYFILE", Context.MODE_PRIVATE);
String listCutomizatoinJson = sh.getString("Holder","");
当我打印 listCutomizatoinJson 时,只得到这个 {} 而不是整个 json。
最佳答案
将大的 String
存储到 SharedPreferences
是一个很长的异步操作。检查您的问题是否不是您只是在保存之前尝试读取该值。还要检查您是否对这两个操作使用相同的 SharedPreferences
实例。
关于android - 无法在共享首选项中存储字符串(巨大),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29486067/