Android:onActivityResult()未调用startActivityForResult
我有一个名为Android:onActivityResult()未调用startActivityForResult,android,android-activity,Android,Android Activity,我有一个名为Main的活动。我正在使用startActivityForResult()从该Main活动调用另一个活动Sub。我想使用onActivityResult()函数获取这个Sub活动的结果 我可以调用Sub活动。但是当从Sub活动返回时,它没有调用onActivityResult()函数。因此,我无法获得Sub活动的结果 实际上,我的Main活动是通过使用startActivity()函数从MainGroup活动开始的,该函数扩展了ActivityGroup 是否有任何方法可以在不调用A
Main
的活动。我正在使用startActivityForResult()
从该Main
活动调用另一个活动Sub
。我想使用onActivityResult()
函数获取这个Sub
活动的结果
我可以调用Sub
活动。但是当从Sub
活动返回时,它没有调用onActivityResult()
函数。因此,我无法获得Sub
活动的结果
实际上,我的Main
活动是通过使用startActivity()
函数从MainGroup
活动开始的,该函数扩展了ActivityGroup
是否有任何方法可以在不调用ActivityResult()的情况下获取“活动结果”
编辑
实际上,我正在为PayPal的预批准活动打电话。我调用的活动是在PayPla库(.jar文件)上。所以我不能修改那个活动。当我在另一个没有ActivityGroup的应用程序中实现这一点时,它工作得很好 请帮帮我
谢谢你…我认为你做得非常错误。如果你想得到sub的结果,你必须为sub活动编写startActivityForResult(),并从main获得活动结果,以得到调用的
onActivityResult()
方法,您必须确保请求代码与预批准中使用的请求代码匹配(例如此处您的请求代码):
Intent preapproveIntent = PayPal.getInstance().preapprove(
preapproval, getBaseContext());
preapproveIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(preapproveIntent, YOUR_REQUEST_CODE);
因此,在onActivityResult()中,应该有如下内容:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {
case Activity.RESULT_OK:
if (requestCode == YOUR_REQUEST_CODE) {
Log.i("RESULT", "IT WORKS");
}
break;
default:
break;
}
}
它应该可以工作,但实际上我对活动结果有一个问题:我的代码没有调用Activity.RESULT\u OK,而是在onActivityResult()中调用Activity.RESULT\u cancelled。这真的很奇怪,因为我确信我的预批准过程是有效的。这甚至很奇怪,因为一旦显示PayPal活动,就会调用onActivityResult()
代码
很抱歉告诉您,PayPals的API和文档太乱了。如果你们中的一些人有相同的问题,请告诉我您是如何解决的(如果您解决了它;-)您的子活动应该完成以返回结果,并且必须调用setResult(int)来设置结果。正如@om252345指出的,您是如何从子活动返回的?你能发布你用来设置结果和完成活动的代码吗?事实上,我正在为PayPal预批准调用一个活动。我调用的活动是在PayPla库(.jar文件)上。所以我不能修改那个活动。当我在另一个没有ActivityGroup的应用程序中实现这一点时,它工作得很好