@foonfyrick

Сохранение списка в shared preferences, какие еще есть способы?

Я нашел в инете такой вариант, но в одном из ответов прочитал, что уже не рекомендуется использовать gson и json для сохранения, а что тогда нужно использовать?
private fun saveList(mList:ArrayList<ModelList>) {
        val sPref:SharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
        val editor: SharedPreferences.Editor = sPref.edit()
        val gson: Gson = Gson()
        val json = gson.toJson(mList)
        editor.putString("list",json)
        editor.apply()
    }
    private fun getSavedListFromSP(){
        val sPref: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
        val gson=Gson()
        val json = sPref.getString("list",null)
        val type = object : TypeToken<ArrayList<ModelList>>() {}.type
        val savedList = gson.fromJson<ArrayList<ModelList>>(json,type)
        savedList?.let {it1->
            it1.forEach {it2->
                list.add(it2)
            }
        }
    }
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Ничего. SharedPreferences не предназначены для хранения списков, и их интерфейс это чётко отражает. Понятно, что если дать пользователю сохранять строки, то туда можно запихнуть всё что угодно, но не надо.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы