(Android Studio) Jetpack Compose ArrayList сбрасывается в ViewModel ⇐ Android
-
Anonymous
(Android Studio) Jetpack Compose ArrayList сбрасывается в ViewModel
Это продолжение моего предыдущего выпуска. Теперь я столкнулся с еще одной проблемой, когда переменные 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: к концу выполнения функции заголовки кажутся обновленными. Однако когда функция вызывается и выполняется снова, отладчик показывает, что заголовки были возвращены.
Я не знаю, почему это происходит, буду очень признателен за любую помощь.
Это продолжение моего предыдущего выпуска. Теперь я столкнулся с еще одной проблемой, когда переменные 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: к концу выполнения функции заголовки кажутся обновленными. Однако когда функция вызывается и выполняется снова, отладчик показывает, что заголовки были возвращены.
Я не знаю, почему это происходит, буду очень признателен за любую помощь.
Мобильная версия