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