使用json将数据存储到sharedpreferences

时间:2012-03-20 20:31:52

标签: android json arraylist android-preferences

我正在开发一款小型Android应用程序!
我有一节课MyPref

public class MyPref{
{
java.util.Calendar cal;
int id;
String name;
//some more methods and constructor
}

我需要将一组MyPref对象存储到共享偏好...

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();

但这不起作用!
还有其他选择吗? 请帮助我..
在推荐中比...更胜一筹。

1 个答案:

答案 0 :(得分:0)

JSONObject o=new JSONObject();
o.put("list",array);

我可能错了,但我很确定你不能使用JSONObject.put(...)将任意Java对象放入JSONObject。来自文档...

  

public JSONObject put(String name,Object value)

     

value JSONObject,JSONArray,String,Boolean,Integer,Long,Double,NULL或null。可能不是NaN或无穷大。

没有提及能够放置任何其他类型的Java对象,并且您尝试放置ArrayList<MyPref>