У меня есть несколько стеков и вы хотите их сохранить с помощью SharedPreferences. В SharedPreferences доступны только основные вещи. Есть ли простой способ сохранить сложные/настраиваемые структуры данных?Как сохранить стопки в SharedPreferences
0
A
ответ
3
Используя Gson, вы можете легко сохранить пользовательские объекты SharedPreferences
Сохранить:
Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson("MyObject");
prefsEditor.putString("MyObject", json);
prefsEditor.commit();
Нагрузка:
Gson gson = new Gson();
String json = mPrefs.getString("MyObject", "");
MyObject obj = gson.fromJson(json, MyObject.class);
2
Вы можете пойти с Марком ответом. Вот то, что я сделал в моем проекте:
магазин в общих префов:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor edit = prefs.edit();
Gson gson = new Gson();
String json = gson.toJson(MyImages);
edit.putString("MyImages", json);
извлечь из общих префов:
Gson gson = new Gson();
String json = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("MyImages", "");
ArrayList<String> MyImages= new ArrayList<String>();
MyImages=gson.fromJson(json, ArrayList.class);
Таким образом, вы также не потерять структуру ваших данных (если это в некотором порядке).
Если вы поместили карту непосредственно в общие префы, вы потеряете порядок данных при извлечении Карты. Мне была важна последовательность, и gson + Arraylist работал отлично.
Другой способ не использовать SharedPrefs и хранить данные в файле (внутренняя память):
File file = new File(getDir("data", MODE_PRIVATE), "map");
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(file));
outputStream.writeObject(map);
outputStream.flush();
outputStream.close();
Смежные вопросы
- 1. Как сохранить datepicker в sharedpreferences
- 2. Как сохранить SharedPreferences в файл?
- 3. Как сохранить объект в SharedPreferences?
- 4. Как сохранить ArrayList в SharedPreferences
- 5. Как сохранить int в SharedPreferences
- 6. Сохранить ints в SharedPreferences
- 7. Как сохранить int с SharedPreferences?
- 8. SharedPreferences, чтобы сохранить сеанс
- 9. Android SharedPreferences Сохранить bitmap
- 10. Как сохранить массив в sharedpreferences в android
- 11. Сохранить объект класса в SharedPreferences
- 12. сохранить sharedPreferences раздувает флажки
- 13. Как сохранить целочисленный двумерный массив в SharedPreferences?
- 14. Как сохранить измененный текст в SharedPreferences?
- 15. Как сохранить данные массива в SharedPreferences?
- 16. Как сохранить базу изображений 64 в sharedpreferences?
- 17. Как сохранить элементы checkbox в SharedPreferences?
- 18. Как сохранить массив JSON в SharedPreferences?
- 19. как сохранить spinner selecteditem в sharedpreferences?
- 20. Как сохранить два значения отдельно в sharedPreferences?
- 21. Сохранить, очистить и сохранить SharedPreferences снова
- 22. Сохранить Arraylist пользовательских объектов SharedPreferences
- 23. Как получить и сохранить SharedPreferences? (методология)
- 24. Android SharedPreferences, как сохранить простую переменную int
- 25. Как сохранить предпочтения где-то, кроме SharedPreferences
- 26. Как изменить андроид sharedPreferences сохранить путь?
- 27. Сохранить изображение как строку с SharedPreferences
- 28. Как сохранить массив строк с SharedPreferences?
- 29. Android Сохранить SharedPreferences из EditText
- 30. Как сохранить изображение с помощью sharedpreferences? Android
Как Маркус говорит в своем ответе, единственным вариантом является для преобразования структур данных в то, что идет в 'String': JSON, XML и т. Д.' SharedPreferences' на самом деле не является универсальной системой хранения данных - для этого используйте базу данных или какой-либо другой файл. – CommonsWare