Как сделать обратный вызов исходного родительского фрагмента из второго дочернего фрагмента? - PullRequest
0 голосов
/ 14 января 2019

В настоящее время у меня есть ParentFragment, открывающий ActionSheetFragment, и onClick кнопки из ActionSheetFragment открывает другой фрагмент ValidationFragment , отклоняющий текущий.

Я хочу обновить содержимое ParentFragment, когда ValidationFragment отклонен. Метод onResume объекта ParentFragment не вызывается.

Я пытался использовать обратные вызовы, но он работал только для двух фрагментов.

Я также попробовал методы setFragment и getFragment. Ни один из них не работает, потому что у меня есть фрагмент в середине, то есть ActionSheetFragment, который закрывается после открытия ValidationFragment. Кто-нибудь может помочь мне решить это?

1 Ответ

0 голосов
/ 14 января 2019

при вызове ActionSheetFragment из ParentFragment, установить parentFragment как targetFragment

 val actiondialog = ActionSheetFragment.getInstance()
 actiondialog.setTargetFragment(this, 119)
 actiondialog.show(this.fragmentManager, "ActionSheetFragment")

и когда ValidationFragment вызывается из ActionSheetFragment, просто перенаправьте targetFragment в ValidationFragment, например:

val validationFragment = ValidationFragment.getInstance()
validationFragment.setTargetFragment(targetFragment, 119)
validationFragment.show(this.fragmentManager, "ValidationFragment")
this@ActionSheetDialog.dismiss()

Итак, в ParentFragment вы получаете результат Activity с тем же кодом,

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    when (requestCode) {
        119 ->
            if (resultCode == Activity.RESULT_OK) {
                // DO YOUR REFRESHING CODE HERE.
            }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...