Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Сохранение настроек в виде массива

#android #java


Каким образом, используя SharedPreferences, сохранить массив данных? Единственный
метод для работы с набором настроек - это getStringSet (String, Set). Но мне
нужно сохранять порядок элементов в массиве между сеансами. Как я понял, метод getStringSet
не гарантирует сохранения порядка элементов.
    


Ответы

Ответ 1



Я решал вопрос в лоб и просто. Допустим у меня есть массив a[], который надо сохранить: int[] a; //... SharedPreferences settings=context.getSharedPreferences(Constants.PREFERENCES, 0); SharedPreferences.Editor editor = settings.edit(); editor.putInt("MyArraySize", a.length); //пишем размер массива for(int i=0; i < a.length; i++) editor.putInt("MyArray"+i, a[i]); //складываем элементы массива editor.commit(); Теперь читаем: settings=context.getSharedPreferences(Constants.PREFERENCES, 0); int size=settings.getInt("MyArraySize", 0); //читаем размер массива if(i==0) return; int[] a=new int[size]; //аллоцируем массив for(int i=0; i < a.length; i++) a[i]=settings.getInt("MyArray"+i, 0); //заполняем элементы массива В общем идея ясна - немного коряво, но зато работает.

Комментариев нет:

Отправить комментарий