0

我已经从一个片段初始化了 payumoney 流,并且在我的 Activity 中得到了响应 OnActivityResult。但我需要在片段中的响应之后更新一些值。有没有可能在片段中获取响应或在获取响应时将我的自定义对象从片段获取到活动?

提前致谢。

4

2 回答 2

0

您可以这样做,因为 Activity 获得结果onActivityResult(),您将需要覆盖活动onActivityResult()并调用super.onActivityResult()以传播到相应的片段以获取未处理的结果代码或全部。

选项 2:

从 fragment 到 onActivityResult 函数的显式调用如下。

在父 Activity 类中,重写 onActivityResult() 方法,甚至在 Fragment 类中重写,并调用如下代码。

在父类中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dualPane);
    fragment.onActivityResult(requestCode, resultCode, data);
}

在子类中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // In fragment class callback
}
于 2018-08-02T10:43:37.937 回答
0

选项1:

如果你startActivityForResult()从片段调用,那么你应该调用startActivityForResult(),而不是getActivity().startActivityForResult(),因为它会导致片段onActivityResult()

如果你不确定你在哪里调用 startActivityForResult() 以及你将如何调用方法。

选项 2:

由于 Activity 得到 的结果onActivityResult(),您将需要覆盖 ActivityonActivityResult()并调用super.onActivityResult()以传播到相应的片段以获取未处理的结果代码或全部。

如果以上两个选项都不起作用,那么请参考选项 3,因为它肯定会起作用。

选项 3:

从 fragment 到 onActivityResult 函数的显式调用如下。

在父 Activity 类中,重写onActivityResult()方法,甚至重写 Fragment 类中的方法,并调用如下代码。

在父类中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dualPane);
    fragment.onActivityResult(requestCode, resultCode, data);
}

在子类中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // In fragment class callback
}
于 2018-08-02T11:06:10.883 回答