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

Какими методами реализуется обмен данными между Fragment-ами в Android?

Компании, где спрашивали
Willdberies

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

sobes.tech AI

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

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

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

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

  4. EventBus или другие библиотеки событий — позволяют отправлять события между компонентами.

Пример с ViewModel:

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

    fun select(item: String) {
        selected.value = item
    }
}

// В Fragment A
viewModel.select("Данные")

// В Fragment B
viewModel.selected.observe(viewLifecycleOwner) { data ->
    // обработка данных
}