Sobes.tech
Назад к вопросам
Junior — Middle
66

Какими методами можно организовать обмен данными между Fragment в приложении?

Компании, где спрашивали
Центр Инвест Банк
Альфа КапиталАльфа Капитал

Ответ от нейросети

sobes.tech AI

Обмен данными между Fragment в Android можно организовать несколькими способами:

  1. Через Activity — фрагменты общаются через родительскую Activity. Один фрагмент передает данные в Activity, а Activity передает их другому фрагменту.

  2. ViewModel с использованием LiveData — общий ViewModel, связанный с Activity, позволяет фрагментам наблюдать за изменениями данных и обмениваться ими реактивно.

  3. Интерфейсы обратного вызова (Callback) — фрагмент определяет интерфейс, который реализует Activity, и через него передает данные другому фрагменту.

  4. Shared Preferences или база данных — менее предпочтительный способ, но можно сохранять данные в общем хранилище.

  5. EventBus (например, Otto, EventBus) — сторонние библиотеки для передачи событий между компонентами.

Пример с ViewModel:

class SharedViewModel : ViewModel() {
    val selected = MutableLiveData<String>()
}

// В первом фрагменте
viewModel.selected.value = "Данные для передачи"

// Во втором фрагменте
viewModel.selected.observe(viewLifecycleOwner) { data ->
    // Используем полученные данные
}