android - 如何从第二个子 fragment 回调到原始父 fragment ?

标签 android android-fragments callback

我目前有 ParentFragment,它正在打开一个 ActionSheetFragment,单击 ActionSheetFragment 中的按钮会打开另一个 fragment ValidationFragment 关闭当前 fragment 。

我想在 ValidationFragment 关闭时刷新 ParentFragment 的内容。不调用 ParentFragment 的 onResume 方法。

我尝试使用回调,但它只适用于两个 fragment 。

我还尝试了 setFragment 和 getFragment 方法。它们都不起作用,因为我在中间有 fragment ,即 ActionSheetFragment,它在打开 ValidationFragment 后被关闭。谁能帮我解决这个问题?

最佳答案

从 ParentFragment 调用 ActionSheetFragment 时, 将 parentFragment 设置为 targetFragment

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

并且当从 ActionSheetFragment 调用 ValidationFragment 时,只需将 targetFragment 转发到 ValidationFragment,例如:

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

因此,在 ParentFragment 中,您使用相同的代码获取 activityResult,

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    when (requestCode) {
        119 ->
            if (resultCode == Activity.RESULT_OK) {
                // DO YOUR REFRESHING CODE HERE.
            }
    }
}

关于android - 如何从第二个子 fragment 回调到原始父 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54178135/

相关文章:

android等待线程的 Activity

android - 从左侧滑动时抽屉导航未打开

android - 如何使用 WebView 在新窗口中启动 Activity ?

JavaScript/jQuery 回调 ("submit")

android - ScaleGestureDetector.OnScaleGestureListener.onScaleEnd() 方法没有被击中

android - 使用 REST 接口(interface)连接到数据库 : Cannot connect

java - 当我在上传帖子时尝试获取 key 时,我从 push() 得到了错误的 postKey

c - [GTK]将 g_signal_connect 中的循环计数器传递给 g_callback

java - 机器人 |如何检查 iamgeButton 的状态是播放还是暂停

android - Navigation Drawer + Sliding Tabs inside fragment Android