Я создаю несколько ArrayLists во время одного из моих действий. Когда я покидаю деятельность и возвращаюсь к ней, они появляются как нулевые. Из некоторых исследований SharedPreferences - это способ преодолеть это. Как мне это сделать? мне нужно сохранить его как HashMap? это SharedPreferences собственный метод или я делаю это в рамках другого конкретного метода?Сохранение ArrayList <Uri> в SharedPreferences
ответ
Здесь, как вы можете использовать Общие настройки записи:
SharedPreferences sp = getActivity().getPreferences(Context.MODE_PRIVATE);
//if your codes in your activity class, you dont need getActivity so you should use this
//getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_string_key", yourValue);
editor.commit();
Здесь, как вы можете использовать Shared Preferences следующим образом:
SharedPreferences sp = getActivity().getPreferences(Context.MODE_PRIVATE);
//same here. If your codes in your activity don't write "getActivity." part
int yourSavedValue = sp.getInt("your_string_key", defaultValue);
//defaultValue mean if there is no value with that key, it will return defaultValue.
Вы можете прочитать и узнать больше из here
обновленный вопрос обновленный ответ:
Как вы можете видеть мой ответ, существует значение по умолчанию.
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE);
Set<String> tempSet = settings.getStringSet(FIRST_LIST, "");
Set<String> temp2Set = settings.getStringSet(SECOND_LIST, "");
//if it is first time it will return null. So your app going crash. To avoid that make a default value. Like this.
for (String str : tempSet)
firstList.add(Uri.parse(str));
for (String str : temp2Set)
secondList.add(Uri.parse(str));
У вас есть по крайней мере три варианта:
Используйте SharedPreferences объект как вы предлагаете в вашем вопросе.
Используйте базу данных SQLite.
Используйте файл с вашим собственным форматом.
Для ознакомления с каждым из этих вариантов читайте Storage Options.
Одна вещь, которую я хотел бы рекомендовать в дополнение к этому, очень хорош для использования класса, который использует SharedPreferences, и его очень легко использовать: https://github.com/kcochibili/TinyDB--Android-Shared-Preferences- Turbo, вы можете делать такие вещи, как 'tinydb.putListObject (« list », новый ArrayList
Спасибо, что назовите меня во вступлении. Я думаю, что SharedPreferences - это способ пойти за мной. Все еще не уверен, как передать мои списки URI и называть их, хотя, как мой первоначальный вопрос предлагает – rafvasq
@ImagineThat После того, как вы прочитали документацию для 'SharedPreferences' и попробуете несколько вещей, не стесняйтесь возвращаться с большим количеством вопросов, более конкретным, тем лучше. –
- 1. Сохранение arraylist как SharedPreferences
- 2. Store ArrayList <PendingIntent> в SharedPreferences
- 3. Сохранить ArrayList <pojo> в SharedPreferences
- 4. Android sharedpreferences в arraylist
- 5. Store Arraylist в sharedPreferences
- 6. Сохранение состояния флажка в SharedPreferences
- 7. Что я делаю неправильно? Сохранение ArrayList из BluetoothDevice в SharedPreferences
- 8. Android: Сохранение ArrayList в SharedPreferences, но загрузка его не работает
- 9. SharedPreferences сохранение данных дважды
- 10. Сохранение значений в SharedPreferences
- 11. Sharedpreferences сохранение arraylist <integer> с двойными значениями в версии выпуска
- 12. Сохранение пользовательских элементов с двумя строками из ArrayList <Item> в SharedPreferences
- 13. Извлечь ArrayList из SharedPreferences
- 14. Удалить ArrayList из SharedPreferences
- 15. Сохранение строк с SharedPreferences
- 16. магазин arraylist sharedpreferences андроид
- 17. Сохранение данных Issue, SharedPreferences
- 18. Как сохранить ArrayList в SharedPreferences
- 19. SharedPreferences Редактирование Сохранение
- 20. ArrayList <Obj> Сохранение объектов null?
- 21. Сохранение данных с sharedpreferences
- 22. Сохранение sharedPreferences в свете класса
- 23. Сохранение видимости ListView в sharedPreferences
- 24. Сохранение отведенного текста в SharedPreferences
- 25. Как хранить <HashMap <MyCompositeKeyClass, ArrayList <MyClass>> в SharedPreferences?
- 26. сохранение данных в sharedpreferences с помощью json
- 27. Сохранить Arraylist пользовательских объектов SharedPreferences
- 28. Сохранение данных из ListView в SharedPreferences
- 29. android - сохранение int с sharedPreferences
- 30. Как добавить ArrayList объекта в SharedPreferences
Прежде чем пытаться его использовать, вы должны проверить, является ли 'tempSet'' null. То же самое касается 'temp2Set'. Кроме того, похоже, что оба списка имеют одинаковое содержимое. Есть ли причина, по которой вы это делаете? –
@ Code-Apprentice, вот что я в итоге сделал. Этот код просто служил примером, близким к моему коду, и поэтому некоторые из них являются излишними. Я отправлю свое решение. – rafvasq
Пожалуйста, не изменяйте свой вопрос таким образом, чтобы он аннулировал существующие ответы. Вместо этого создайте новый вопрос. – Matt