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

Каким образом осуществляется передача информации между компонентами Fragment в Android?

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

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

sobes.tech AI

В Android передача информации между фрагментами обычно происходит через активность, которая их содержит, либо с помощью общих ViewModel.

Основные способы:

  1. Через активность:

    • Фрагмент A вызывает метод активности и передает данные.
    • Активность передает данные фрагменту B.
  2. Использование интерфейсов:

    • Фрагмент A объявляет интерфейс для передачи данных.
    • Активность реализует этот интерфейс и получает данные от фрагмента A, затем передает их фрагменту B.
  3. Shared ViewModel (с использованием архитектурных компонентов):

    • Оба фрагмента используют одну и ту же ViewModel, связанную с активностью.
    • ViewModel содержит LiveData, через которую фрагменты обмениваются данными.

Пример с Shared ViewModel:

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

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

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