【发布时间】:2013-01-31 23:14:28
【问题描述】:
我有自己的对象,需要存储以备后用。 User保存这个对象,变成JSON String,当User连接网络后,JSON String又变成对象,对它进行操作。
我的问题是,在运行时,我怎么知道如何存储对象?
即
Gson gson= new Gson();
String pointOfInterest = gson.toJson(point);
SharedPreferences.Editor sharedprefEditor = application_shared_preferences.edit();
sharedprefEditor.putString(?KEY?,pointOfInterest);
我可以使用什么来获取 KEY 的值?如果我使用索引,每次打开或关闭应用程序时它都会重置,这将替换我的对象。
编辑 抱歉我说的不够清楚,上面代码所在的方法可以运行任意次数,并且可以存储多个pointsOfInterest。
【问题讨论】:
-
您可能错过了有关 SharedPreferences 的一些内容。
key唯一标识您正在保存的值,您可以使用相同的密钥将其取回。除非您明确这样做,否则不会“重置”任何内容。不过,不要忘记commit()您的更改 -
不要使用 SharedPreferences。它不是为存储这样的数据而设计的。顾名思义,它用于存储用户设置(尽管它也有其他用途)。简单的布尔值,字符串之类的东西。只需将您的 JSON 写入私有存储中的文件即可。
标签: android json sharedpreferences gson state