Форум программистов, компьютерный форум CyberForum.ru

Как поместить в preferences arrayList типа: arraylist<Class> - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Создать JSON http://www.cyberforum.ru/android-dev/thread1103092.html
Здравствуйте! Как сделать, чтобы при установки или при включении приложения создавался файл формата JSON с данными (список), которые я введу зарание. И если можно чтобы эти данные выводились в ListVier. Если можно напишите код. Большое спасибо.
Программирование Android Иерархия View, рисование, слой корневого элемента Известно, что Android рисует сначала корневые View, потом дочерние. Это приводит к тому, что если я буду пытаться что то рисовать из корневого View - это обычно перекроется чем нибудь из дочерних View. Стало быть какую то дополнительную информацию к содержимому дочерних View из корня особо не порисуешь. Вопрос - есть ли все же возможность рисовать из корневого View поверх дочерних? http://www.cyberforum.ru/android-dev/thread1102934.html
Программирование Android Листенер на кнопки громкости. Как правильно?
Цель: определение и различие нажатий кнопок Громче/Тише, даже если увеличивать/уменьшать некуда и должно работать при свернутом приложении. Начал вот с этого кода, но в нем сразу два бага: 1) при разовом нажатии кнопки громкости, событие срабатывает 4 раза, а при быстром двойном - шесть :( 2) если громкость увеличивать или уменьшать уже некуда, то нажатие не обрабатывается. ...
Программирование Android Обращение к методу другого класса
Привет Не пинайте за возможный бред, я учусь) В общем мне необходимо вызвать метод класса Auth из другого класса. Сам метод public void CreateRecord(){ Toast.m akeText(this, "НЕГАТИВНО :'(", Toast.LENGTH_SHORT).show(); // проверочное сообщение Intent intent2 = new Intent(getApplicationContext(), MainActivity.class); // переход на другой активити startActivity(intent2);
Программирование Android Как запретить закрытие активити? http://www.cyberforum.ru/android-dev/thread1102528.html
Привет, имеется активити которое отображается в виде диалогового окна - Theme.dialog На ней имеются 2 кнопки "Отмена" "Принять", в общем не суть. Когда тапаешь пальцем по свободному пространству от окошка активити, активити конечно закрывается. и фокус переходит к активити на заднем фоне. Вопрос: Как сделать так что бы оно не закрывалась таким образом? Нужно что бы все было через кнопки ...
Программирование Android IntelliJ IDEA. Перестал компилироваться проект Выскакивает окно об ошибке в aapt.exe. Другой проект компилируется. Удалял папки gen, но не помогло. Описание ошибки: <?xml version="1.0" encoding="UTF-16"?> <DATABASE> <EXE NAME="aapt.exe" FILTER="GRABMI_FILTER_PRIVACY"> <MATCHING_FILE NAME="aapt.exe" SIZE="852480" CHECKSUM="0xC95B011A" MODULE_TYPE="WIN32" PE_CHECKSUM="0xD9514" LINKER_VERSION="0x10000" LINK_DATE="10/23/2013... подробнее

Показать сообщение отдельно
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
23.02.2014, 12:59     Как поместить в preferences arrayList типа: arraylist<Class>
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;
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru