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

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

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

sobes.tech AI

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

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

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

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

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

Пример с ViewModel:

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

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

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

Этот способ считается современным и удобным для обмена данными между фрагментами в рамках одной Activity.