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

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

Компании, где спрашивали
ПромсвязьбанкПромсвязьбанк

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

sobes.tech AI

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

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

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

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

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

  5. SharedPreferences или база данных — для более постоянного хранения и обмена данными.

Пример с ViewModel:

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

// В фрагменте-отправителе
sharedViewModel.selectedItem.value = "Данные"

// В фрагменте-получателе
sharedViewModel.selectedItem.observe(viewLifecycleOwner) { data ->
    // обработка данных
}