Как передать выбранные данные с одного экрана на другой с помощью ViewModel в Jetpack Compose? (Назад)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как передать выбранные данные с одного экрана на другой с помощью ViewModel в Jetpack Compose? (Назад)

Сообщение Anonymous »


I'm building an Android app with Jetpack Compose, and I'm facing an issue with passing selected data from one screen to another using a ViewModel.

Here's what I'm trying to achieve:
  • Screen A has a click listener that opens Screen B.
  • Screen B displays a list of items, and the user can select one item.
  • Upon selecting an item in Screen B, I want to pass the selected data back to Screen A using a ViewModel.

    class MyViewModel : ViewModel() { private val _selectedMusicItem = MutableStateFlow(null) val selectedMusicItem = _selectedMusicItem.asStateFlow() fun updateSelectedMusicItem(musicItem: MusicItem) { _selectedMusicItem.value = musicItem } }
In Screen B, I'm updating the selected data in the ViewModel like this:

viewModel.updateSelectedMusicItem(selectedMusicItem) navController.navigateUp() And in Screen A, I'm trying to observe the selected data like this:

val selectedMediaListState by viewModel.selectedMusicItem.collectAsState() However, the selected data isn't updating in Screen A when I navigate back from Screen B.

Can anyone help me understand how to correctly pass selected data from one screen to another using a ViewModel in Jetpack Compose? Any insights or suggestions would be greatly appreciated. Thank you!


Источник: https://stackoverflow.com/questions/781 ... in-jetpack
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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