Назад к вопросам
Junior — Middle
77
Каким образом осуществляется передача информации между компонентами Fragment в Android?
Компании, где спрашивали
ПСБ
Ответ от нейросети
sobes.tech AI
В Android передача информации между фрагментами обычно происходит через активность, которая их содержит, либо с помощью общих ViewModel.
Основные способы:
-
Через активность:
- Фрагмент A вызывает метод активности и передает данные.
- Активность передает данные фрагменту B.
-
Использование интерфейсов:
- Фрагмент A объявляет интерфейс для передачи данных.
- Активность реализует этот интерфейс и получает данные от фрагмента A, затем передает их фрагменту B.
-
Shared ViewModel (с использованием архитектурных компонентов):
- Оба фрагмента используют одну и ту же ViewModel, связанную с активностью.
- ViewModel содержит LiveData, через которую фрагменты обмениваются данными.
Пример с Shared ViewModel:
class SharedViewModel : ViewModel() {
val selectedItem = MutableLiveData<String>()
}
// В фрагменте A
viewModel.selectedItem.value = "Данные для передачи"
// В фрагменте B
viewModel.selectedItem.observe(viewLifecycleOwner) { data ->
// Используем полученные данные
}