Используя Rememberbleableable с MutablestatelistofAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Используя Rememberbleableable с Mutablestatelistof

Сообщение Anonymous »

Я пытаюсь добавить в мой композиционный список изменяемый список выборочных объектов. Я также хочу иметь возможность добавлять объекты и удалять из них объекты.

Код: Выделить всё

val names = remember { mutableStateListOf() }

names.add("Bill")
names.remove("Bill")
Теперь я хочу, чтобы этот список пережил изменение конфигурации, поэтому, возможно, хорошая идея использовать Remememberable . Возможно, что-то вроде этого: < /p>

Код: Выделить всё

val names = rememberSaveable { mutableStateListOf() }

names.add("Bill")
names.remove("Bill")
< /code>
Но это не работает, он бросает следующее исключение: < /p>

androidx.compose.runtime.snapshots.snapshotstatelist не может быть сохранен
с использованием текущего SaveblestateRegistry. Реализация по умолчанию
поддерживает только типы, которые можно хранить внутри пакета. Пожалуйста,
рассмотрите возможность реализации пользовательской Saver для этого класса и передайте его
remembersableable().
< /blockquote>
Это означает, что Snapshotstatelist < /code> (результат Mutablestatelistof < /code>). Это: < /p>
[list]
[*] На самом деле реализация Saver для SnapshotStatelist < /code>. < /li>
 Использование чего -то вроде val namesstate = remembersableable {mutablestatef (listof  ())} < /code>. НЕОБХОДИМО (например, namesstate.value = namesstate.value + "joe" 
для простого добавления одного элемента).
[/list]
Оба эти способа кажутся слишком сложными для, казалось бы, небольшой задачи. Интересно, какой лучший способ сделать то, что я хочу. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/688 ... tatelistof
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»