我有我自己的对象,我需要存储以供将来使用。用户保存这个对象,它被转换成JSON字符串,然后当用户连接到网络时,JSON字符串被重新转换为对象操作。如何使用SharedPreferences保存变量
我的问题是,在运行时,我该如何知道如何存储对象?
即
Gson gson= new Gson();
String pointOfInterest = gson.toJson(point);
SharedPreferences.Editor sharedprefEditor = application_shared_preferences.edit();
sharedprefEditor.putString(?KEY?,pointOfInterest);
我可以用什么键的值?如果我使用索引,每次打开或关闭应用程序时都会重置,这将取代我的对象。
编辑 对不起,我没有搞清楚的是,上面的代码是在方法可以运行任意次数,有可能是几个pointsOfInterest存储。
您可能错过了有关SharedPreferences的内容。 'key'唯一标识了您保存的值,并且可以使用相同的密钥将其返回。除非明确这样做,否则没有什么会“重置”。不要忘记'commit()'你的改变,尽管 – 323go
不要使用SharedPreferences。它不是为了存储这样的数据而设计的。顾名思义,它就是存储用户设置(尽管它也有其他用途)。简单的布尔,字符串就是这样的事情。只需将您的JSON写入私有存储中的文件即可。 – Simon