Где используется Target Fragment?
TargetFragment используется примерно для того же что и startActivityForResult(), но между фрагментами. Таргет фрагмент это фрагмент который вызывает другой фрагмент чтобы получить из него какой-либо результат ()
Чтобы использовать его для того, чтобы получить результат выполнения какого-либо фрагмента необходимо проделать выполнить следующие шаги
- В вызванном фрагменте указать target фрагмент методом setTargetFragment()
Данный метод принимает в себя сам фрагмент (инстанс) и requestCode. Чтобы получить инстанст родительского фрагмента можно использовать findFragmentByTag()
- В вызывающем фрагменте необходимо переопределить метод onActivityResult()
- Вызвать в конце выполения вызванного фрагмента targetFragment.onActivityResult(), чтобы передать данные из дочернего фрагмента в родительский.
Стоит понимать что данным методом можно не просто передавать данные из одного фрагмента в другой. Это довольно гибкий способ.
Target Fragment объявлен deprecated начиная с API Level 28, так что сейчас лучше его не использовать. В качестве альтернатив можно выделить связку библиотек Navigation Component (официальная библиотека от Google) и Navigation Result (создана энтузиастом)
Бесплатные Telegram-боты для обучения
Практика с проверкой кода и помощью ИИ-ментора
AndroidSprint AI Mentor
Проверяет Pull Request'ы в GitHub, проводит тестовые собеседования с голосом и таймером, помогает разбираться с кодом 24/7
Попробовать ИИ-ментора →KotlinSprint Bot
22 урока Kotlin, 220 тестов, 120 практических задач с код-ревью
Начать обучение Kotlin →