Какими методами можно организовать обмен данными между Fragment в приложении?
Ответ от нейросети
sobes.tech AI
Обмен данными между Fragment в Android можно организовать несколькими способами:
-
Через Activity — фрагменты общаются через родительскую Activity. Один фрагмент передает данные в Activity, а Activity передает их другому фрагменту.
-
ViewModel с использованием LiveData — общий ViewModel, связанный с Activity, позволяет фрагментам наблюдать за изменениями данных и обмениваться ими реактивно.
-
Интерфейсы обратного вызова (Callback) — фрагмент определяет интерфейс, который реализует Activity, и через него передает данные другому фрагменту.
-
Shared Preferences или база данных — менее предпочтительный способ, но можно сохранять данные в общем хранилище.
-
EventBus (например, Otto, EventBus) — сторонние библиотеки для передачи событий между компонентами.
Пример с ViewModel:
class SharedViewModel : ViewModel() {
val selected = MutableLiveData<String>()
}
// В первом фрагменте
viewModel.selected.value = "Данные для передачи"
// Во втором фрагменте
viewModel.selected.observe(viewLifecycleOwner) { data ->
// Используем полученные данные
}