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

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

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

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

sobes.tech AI

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

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

  2. Использование ViewModel: Общая ViewModel, связанная с Activity, позволяет фрагментам обмениваться данными через LiveData или другие наблюдаемые объекты.

  3. Аргументы фрагмента: При создании нового фрагмента можно передать данные через Bundle в метод setArguments(), а затем получить их в onCreate().

Пример передачи данных через ViewModel:

// Общая ViewModel
class SharedViewModel : ViewModel() {
    val selectedItem = MutableLiveData<String>()
}

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

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

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