putStringSet()
получает Set<String>
, вы можете конвертировать MutableList<String>
в значение:
putStringSet("lastFavorite", saveFavorite.toSet())
И затем вы можете преобразовать его обратно в MutableList<String>
, когда получите его:
getStringSet("lastFavorite", setOf<String>()).toMutableList()
Имейте в виду, что использование StringSet не сохранит порядок элементов при чтении их обратно, поскольку SharedPreferences использует HashSet. Также не поддерживает повторяющиеся элементы .
Если ваш вариант использования требует сохранения упорядоченного списка, который поддерживает дубликаты элементов, рассмотрите возможность упорядочения списка и сохранения его в виде одной строки.
Например, объединяя все строки вместе, используя символ, который не будет содержаться в ваших строках в качестве разделителя (например, |
). Затем вы можете split()
разнести их, читая их обратно.
Если список слишком длинный, вам следует рассмотреть другое хранилище данных.