Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
1

Как поместить в preferences arrayList типа: arraylist<Class>

23.02.2014, 01:39. Просмотров 1015. Ответов 4
Метки нет (Все метки)

Как поместить в preferences arrayList типа: arraylist<Class>

Class содержит вид:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class CountryClass {
    private String countryName;
    private int countryFlag;
    
    public CityInfo(String cName, int flagImage)
    {
        countryName = cName;
        countryFlag = flagImage;
    }
    public String getCountryName()
    {
        return countryName;
    }
    public int getCountryFlag()
    {
        return countryFlag;
    }
    public String toString()
    {
        return countryName;
    }
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 01:39
Ответы с готовыми решениями:

Сохранение arraylist<class> в памяти устройства
Добрый день! Подскажите, как привильно сохрянать список с классами? Как я понимаю надо смотреть в...

Как сохранить ArrayList
Знаю,вопрос наверное глупый,но как? У меня приложение &quot;Телефонная книга&quot;. Если б я просто писал на...

Как в ArrayList найти значение?
Допустим у меня есть ArrayList с объектами, у объектов этих есть ID и NAME. Как мне найти по id или...

Как добавить в ArrayList массив из ресурсов?
Возможно ли добавить в ArrayList&lt;String&gt; array_list = new ArrayList&lt;String&gt;(); массив из ресурсов?...

Как связать ArrayList, ListView и AsynkTask?
В AsinkTask в doInBackGround у меня есть массив final ArrayList&lt;String&gt; vkmass = new...

4
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
23.02.2014, 12:59 2
Лучший ответ Сообщение было отмечено Stylish2013 как решение

Решение

Stylish2013, если принципиально в preferences, проще всего использовать конвертацию, например в JSON.
Как это выглядит.
Сначала немного модифицируем класс-модель, добавив методы toJSON и статический билдер.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import org.json.JSONException;
import org.json.JSONObject;
 
public class CountryClass {
    private String countryName;
    private int countryFlag;
 
    public CountryClass(String cName, int flagImage)
    {
        countryName = cName;
        countryFlag = flagImage;
    }
 
    public CountryClass() {
 
    }
 
    public String getCountryName()
    {
        return countryName;
    }
    public int getCountryFlag()
    {
        return countryFlag;
    }
    public String toString()
    {
        return countryName;
    }
 
    public JSONObject toJSON() {
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("name", countryName);
            jsonObject.put("flag", countryFlag);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return jsonObject;
    }
 
    public static CountryClass create(JSONObject json) {
        try {
            return new CountryClass(json.getString("name"), json.getInt("flag"));
        } catch (JSONException e) {
            return new CountryClass();
        }
    }
 
}
Всё, теперь можно сохранять объект по цепочке Class->JSON->String, и читать String->JSON-Class.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class CountryManager {
    public static final String PREF_KEY = "cities";
 
    static void saveData(List<CountryClass> countryClasses) {
        JSONArray jsonArray = new JSONArray();
        for (CountryClass c : countryClasses) {
            jsonArray.put(c.toJSON());
        }
        //SAVE
        Preferences.save(PREF_KEY, jsonArray.toString());
    }
 
    static List<CountryClass> getData() throws JSONException {
        String string = Preferences.get().getString(PREF_KEY, null);
        List<CountryClass> countryClasses = new ArrayList<CountryClass>();
        if (string == null) {
            return countryClasses;
        }
        JSONArray array = new JSONArray(string);
        for (int i = 0; i < array.length(); i++) {
            countryClasses.add(CountryClass.create(array.getJSONObject(i)));
        }
        return countryClasses;
    }
}
1
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.02.2014, 13:37  [ТС] 3
Класс. Но вот только ругается чего то на строчки:

Java
1
Preferences.save(PREF_KEY, jsonArray.toString());
The method save(String, String) is undefined for the type Preferences

и
Java
1
String string = Preferences.get().getString(PREF_KEY, null);
The method get(String, String) in the type Preferences is not applicable for the arguments ()

подскажите пожалуйста, что может быть не так?
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
23.02.2014, 16:34 4
Stylish2013,
Preferences.save и Preferences.get() я для примера написал. Используйте свой доступ к хранилищу
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.02.2014, 16:47  [ТС] 5
Цитата Сообщение от YuraAAA Посмотреть сообщение
Preferences.save и Preferences.get() я для примера написал. Используйте свой доступ к хранилищу
Да, я уже разобрался. Спасибо огромное Вам за помощь. Всё работает.
0
23.02.2014, 16:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2014, 16:47

Android. Как сохранить ArrayList<String> в файл
Ребята, помогите пожалуйста. Есть список: ArrayList&lt;String&gt; myList; Пишу приложение типа...

ArrayList<Map<String,Object>> как сохранить активность?
ArrayList&lt;Map&lt;String,Object&gt;&gt; как сохранить savedInstanceState

Как сохранить arrayList и другие объекты после выхода из activity?
Всех приветствую. Подскажите пожалуйста,как реализовать чтобы при выходе из activity кнопкой назад...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru