Как сохранить ArrayList <list>

54
4

II имеет ab ArrayList, который содержит ArrayLists, они снова содержат списки. Один из строк и один из видов. Как я могу сохранить этот список корней в общих предпочтениях или в любом другом? Вот обзор:

           MotherList
|
.
DaughterLists
/ \
/ \
ListOfViews ListOfStrings
.
.

спросил(а) 2016-04-08T02:54:00+03:00 4 года, 3 месяца назад
1
Решение
77

Вот все методы о размещении данных в SharedPreferences: putBoolean (String key, boolean v) putInt (String k, int v) putFloat (String k, float v) putLong (String k, long v) putString (String k, String v ) putStringSet (String k, Set v)

Но есть открытый исходный кадр, который ASimpleCache может решить:

save: ACache acache = ACache.get(Context); acache.put( "ключ", ваш корень-лист); get: acache.getAsObject("ключ");

ответил(а) 2016-04-08T07:05:00+03:00 4 года, 3 месяца назад
39

Здравствуйте, я предлагаю вам использовать GSON для сериализации и десериализации вашего списка. Таким образом, вы можете легко сохранить его на своих SharedPreferences.

Сначала преобразуйте объект ArrayList<List> в JSON с помощью GSON Converter

String myArrayListAsJSON = new Gson().toJson(myArrayList); // you will pass your arraylist variable to toJson() method

Сохраните свой JSON-объект как String на вашем SharedPreference

SharedPreferences prefs=this.getSharedPreferences("PREF_KEY_FOR_YOUR_APP",Context.MODE_PRIVATE);
Editor edit=prefs.edit();

edit.putString("myListKey", myArrayListAsJSON); // we will put our list hat serialized with GSON here
edit.commit();

Повторно используйте свой список в любом месте и времени вашего приложения. Вам просто нужно десериализовать свой JSON, который вы сохранили в своих Shared Preferences

SharedPreferences prefs=this.getSharedPreferences("PREF_KEY_FOR_YOUR_APP",Context.MODE_PRIVATE);
String myListAsString = prefs.getString("myListKey","default_value");
ArrayList<List> yourObject = new Gson().fromJson(myListAsString, YOUR_MODEL.class);

Gson - это библиотека Java, которая может быть использована для преобразования объектов Java в их представление JSON. Его также можно использовать для преобразования строки JSON в эквивалентный объект Java. Gson может работать с произвольными объектами Java, включая ранее существовавшие объекты, у которых нет исходного кода.


Вы можете использовать GSON в своем приложении, добавив эту строку в свои зависимости.

compile 'com.google.code.gson:gson:2.6.2'

Вы можете найти более подробную информацию и пример на странице GSON Github

ответил(а) 2016-04-08T08:15:00+03:00 4 года, 3 месяца назад
41

Хранить Arraylist с использованием общих настроек

SharedPreferences prefs=this.getSharedPreferences("yourPrefsKey",Context.MODE_PRIVATE);
Editor edit=prefs.edit();

Set<String> set = new HashSet<String>();
set.addAll(your Arraylist Name);
edit.putStringSet("yourKey", set);
edit.commit();

Получить Arraylist из общих настроек

Set<String> set = prefs.getStringSet("yourKey", null);
List<String> sample=new ArrayList<String>(set);

ответил(а) 2016-04-08T07:51:00+03:00 4 года, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема