(Android Studio) Jetpack Compose ArrayList сбрасывается в ViewModelAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 (Android Studio) Jetpack Compose ArrayList сбрасывается в ViewModel

Сообщение Anonymous »


Это продолжение моего предыдущего выпуска. Теперь я столкнулся с еще одной проблемой, когда переменные ArrayList, объявленные с помощью синтаксиса mutableStateOf(), в моей ViewModel сбрасываются после обновления.

ViewModel имеет несколько переменных mutableStateOf(), включая строки и ArrayList. Переменные состояния String сохраняют новые значения после обновления. Кроме того, я каждый раз переназначаю переменную состояния ArrayList новому массиву, в чем я и проверяю. ArrayList — это не просто добавление/удаление элементов.

Краткий пример кода, в котором возникла проблема:

заголовок var от mutableStateOf("") заголовки переменных от mutableStateOf(ArrayList()) забавное updateTitles(newTitleSet: ArrayList){ вар newArray = ArrayList() for (заголовок в newTitleSet){ newArray.add(название) } заголовки = новыймассив } забавное изменениеHeading (newHeading: String) { заголовок = новый заголовок } Успешный вызов функцииchangeHeading из составного заголовка обновлений в ViewModel. Однако вызов updateTitles приводит к проблеме, когда titles сначала изменяется на новый ArrayList, а сразу после этого возвращается к значению по умолчанию. Я отладил код, в котором вызывается забавная функция updateTitles: к концу выполнения функции заголовки кажутся обновленными. Однако когда функция вызывается и выполняется снова, отладчик показывает, что заголовки были возвращены.

Я не знаю, почему это происходит, буду очень признателен за любую помощь.
Ответить

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

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

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

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

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