Как стартовать фрагменты через Intent

«Как стартовать фрагменты через Intent» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для старта фрагментов напрямую через Intent используйте FragmentContainerView в активности и передавайте данные через аргументы (Bundle).

Пример:

// В активности
supportFragmentManager.beginTransaction()
    .replace(R.id.fragment_container, MyFragment().apply {
        arguments = Bundle().apply {
            putString("key", "value")
        }
    })
    .commit()

Важно:

  • Фрагменты не стартуются через Intent, это нарушает архитектуру Android
  • Используйте Navigation Component для навигации между фрагментами
  • Для межпроцессного взаимодействия используйте активности с Intent

Для передачи данных между фрагментами лучше использовать ViewModel или SharedViewModel.