Поместить и получить массив String из общих настроек

Мне нужно сохранить на общих настройках некоторый массив строк и после этого получить их. Я попробовал это:

prefsEditor.putString(PLAYLISTS, playlists.toString()); где плейлисты – это String[]

и получить:

playlist= myPrefs.getString(PLAYLISTS, "playlists"); где плейлист – это String но он не работает.

Как я могу это сделать ? Может кто-нибудь мне помочь?

Заранее спасибо.

Вы можете создать собственное строковое представление массива следующим образом:

 StringBuilder sb = new StringBuilder(); for (int i = 0; i < playlists.length; i++) { sb.append(playlists[i]).append(","); } prefsEditor.putString(PLAYLISTS, sb.toString()); 

Затем, когда вы получаете String из SharedPreferences, просто проанализируйте его следующим образом:

 String[] playlists = playlist.split(","); 

Это должно выполнить эту работу.

С уровня API 11 вы можете использовать putStringSet и getStringSet для хранения / извлечения наборов строк:

 SharedPreferences pref = context.getSharedPreferences(TAG, Context.MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); editor.putStringSet(SOME_KEY, someStringSet); editor.commit(); SharedPreferences pref = context.getSharedPreferences(TAG, Context.MODE_PRIVATE); Set someStringSet = pref.getStringSet(SOME_KEY); 

Вы можете использовать JSON для сериализации массива в виде строки и сохранения его в настройках. См. Мой ответ и пример кода для аналогичного вопроса здесь:

Как написать код для создания sharedpreferences для массива в android?

 HashSet mSet = new HashSet<>(); mSet.add("data1"); mSet.add("data2"); saveStringSet(context, mSet); 

где

 public static void saveStringSet(Context context, HashSet mSet) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = sp.edit(); editor.putStringSet(PREF_STRING_SET_KEY, mSet); editor.apply(); } 

а также

 public static Set getSavedStringSets(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getStringSet(PREF_STRING_SET_KEY, null); } private static final String PREF_STRING_SET_KEY = "string_set_key"; 
  • Как выполнить множественное присвоение в MATLAB?
  • Как передать массив в качестве аргумента функции в Bash
  • Присвоение массиву char значения в C
  • Заменить форму массива таблиц с массивом памяти VBA
  • Как resize многомерного (2D) массива в C #?
  • Добавить новый элемент в массив без указания индекса в Bash
  • Можно ли заполнить массив номерами строк, которые соответствуют определенным критериям без цикла?
  • Возьмите сегмент массива в Java без создания нового массива в куче
  • C ++ STL vector vs array в реальном мире
  • Общие правила передачи / возврата ссылки на массив (не указатель) на / из функции?
  • Новые данные, не сохраняющиеся в столбце массива Rails в Postgres
  • Interesting Posts

    Java, Как добавить файлы библиотеки в netbeans?

    Размер кучи Android на разных телефонах / устройствах и версиях ОС

    Как разрезать ненужные видеоролики и присоединить остальные к одному видео с помощью FFmpeg?

    Как проверить, является ли тип подтипом ИЛИ типом объекта?

    Как редактировать системный / пользовательский словарь в Windows 8?

    Как выполнить двойной загрузку домашнего ПК с Linux и Windows 7?

    Знак предупреждения Thunderbird продолжает появляться

    Выборочно отключить предупреждения GCC только для части единицы перевода?

    Выполнять несколько команд по ssh без повторного подключения

    Что такое алгоритм JVM Scheduling?

    Соглашения об именах, поддерживаемые JSF

    Почему мой пакет CSS не работает с загруженным приложением MVC4 с помощью bin?

    Получение информации о пользователе Active Directory с проверкой подлинности Windows в MVC 4

    Инициализация полей экземпляров по сравнению с локальными переменными

    Почему NSError нуждается в двойной косвенности? (указатель на указатель)

    Давайте будем гением компьютера.