使用json将数据存储到sharedpreferences
问题描述:
我正在研究一个小的Android应用程序!
我有一个类MyPref
使用json将数据存储到sharedpreferences
public class MyPref{
{
java.util.Calendar cal;
int id;
String name;
//some more methods and constructor
}
我需要存储MyPref对象的数组来sharedpreferences ...
java.util.ArrayList<MyPref> array=new java.util.ArrayList<MyPref>();
array.add(//MyPref object);
array.add(//MyPref object);
现在我怎么可以存储此ArrayList对象sharedpreferences ..
我试过..
JSONObject o=new JSONObject();
o.put("list",array);
SharedPreferences s=PreferenceManager.getDefaultSharedPreferences(this);
Editor edt=s.edit();
edt.putString("mylist",o.toString());
edt.commit();
但这不起作用!
有没有其他的选择?
plz帮助我..
感谢名单中advace ..
答
JSONObject o=new JSONObject();
o.put("list",array);
我可能是错的,但我敢肯定你不能用JSONObject.put(...)
把任意的Java对象转换为JSONObject
。从文档...
公众的JSONObject把(字符串名称,对象的值)
值一个JSONObject,JSONArray,字符串,布尔值,整数,长,双,NULL,或为空。可能不是NaN或无限。
没有提及能够放置任何其他类型的Java对象,并且您试图放置ArrayList<MyPref>
。
+0
是啊.. 这doestnot工作! – Navaneeth 2012-03-20 21:36:43
您需要比“不起作用”更具体。是否有logcat错误,ANR,某种形式的可见错误,或者你看不到任何东西,发生了什么... – 2012-03-20 20:33:52
它获得字符串上的java.lang.ClassCasteException – Navaneeth 2012-03-20 20:37:32
我应该使用Gson吗? – Navaneeth 2012-03-20 20:41:32