хранение данных в общих настройках с использованием json - PullRequest
0 голосов
/ 21 марта 2012

Я работаю над небольшим приложением для 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 в общих настройках ..
Я пытался ..

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 голосов
/ 21 марта 2012
JSONObject o=new JSONObject();
o.put("list",array);

Я могу ошибаться, но я почти уверен, что вы не можете использовать JSONObject.put(...) для помещения произвольного объекта Java в JSONObject.Из документов ...

public JSONObject put (имя строки, значение объекта)

значение a JSONObject, JSONArray, String, Boolean, Integer, Long, Double, NULL или ноль.Не может быть NaN или бесконечностей.

Нет упоминания о возможности поместить объект Java любого другого типа, и вы пытаетесь установить ArrayList<MyPref>.

...