#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); //заполняем элементы массива В общем идея ясна - немного коряво, но зато работает.
Комментариев нет:
Отправить комментарий