我已经从一个片段初始化了payumoney流,并且在我的"活动"中得到了响应OnActivityResult。但我需要在片段中的响应之后更新一些值。在获取响应的同时,有没有可能在fragment中获取响应,或者将我的自定义对象从fragment获取到activity?
提前谢谢。
由于"活动"获得onActivityResult()
的结果,因此您可以执行此操作,因此需要覆盖活动的onActivityResult()
并调用super.onActivityResult()
以传播到未处理的结果代码或所有结果代码的相应片段。
选项2:
片段对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
}
选项1:
如果您从片段中调用startActivityForResult()
,那么您应该调用startActivityForResult()
,而不是getActivity().startActivityForResult()
,因为这将导致片段onActivityResult()
。
如果您不确定在哪里调用startActivityForResult((,以及如何调用方法。
选项2:
由于"活动"获取onActivityResult()
的结果,因此需要覆盖活动的onActivityResult()
并调用super.onActivityResult()
以传播到未处理的结果代码或所有结果代码的相应片段。
如果以上两个选项都不起作用,那么请参考选项3,因为它肯定会起作用。
选项3:
片段对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
}