Android Как отследить закрытие фрагмента внутри активити
У меня есть активити, внутри него у меня фрагмент. На фрагменте находится кнопка закрытия, которая закрывает фрагмент
fragmentManager!!.beginTransaction().remove(this).commit()
Так вот, на фрагменте есть поля из которых я хочу вытянуть значения после закрытия. Можно ли как-то отследить закрытие фрагмента внутри активити? Фрагмент запускаю так:
fragmentManager!!.beginTransaction()
.add(R.id.container, Fragment1())
.commit()
Ответы (1 шт):
Автор решения: Sergei Buvaka
→ Ссылка
Ну у вас есть жизненный цикл фрагмента. Вы можете создать какой-то интерфейс вроде такого:
interface ActivityInterractor {
fun onFragmentClosed()
}
Реализовать этот интерфейс в Activity:
class Activity : AppCompatActivity(), ActivityInterractor {
override fun onFragmentClosed() {
// здесь вы можете выполнять нужные вам действия по закрытию фрагмента
}
}
Во фрагменте создать экземпляр этого интерфейса и присвоить ему значение:
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is ActivityInterractor) {
this.activityInterractor = context
}
}
И где-нибудь в методе onDestroyView() вызывать:
activityInterractor.onFragmentClosed()