我有一个名为Main
的活动。我使用Sub
从此Main
活动中调用了另一项活动startActivityForResult()
。我想使用Sub
函数获取此onActivityResult()
活动的结果。
我可以致电Sub
活动。但是当从Sub
活动返回时,它不会调用onActivityResult()
函数。所以我无法得到Sub
活动的结果。
实际上,我的Main
活动是使用MainGroup
功能从startActivity()
活动开始的,该功能扩展了ActivityGroup
。
有没有办法在不调用onActivityResult()
的情况下获取活动结果?
实际上我正在调用PayPal Preapprovals的活动。我正在调用的活动是在PayPla库(.jar文件)上。所以我不能修改那个活动。当我在没有ActivityGroup的另一个应用程序中实现它时,这很正常
请帮帮我..
谢谢......
答案 0 :(得分:1)
要调用onActivityResult()
方法,您必须确保 requestCode 与 requestCode 匹配(例如 YOUR_REQUEST_CODE )用于PreapprovalIntent:
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结果的问题:我的代码调用 Activity.RESULT_OK 而不是onActivityResult()
中的 Activity.RESULT_CANCELED }。这真的很奇怪,因为我确信我的预批准程序有效。甚至很奇怪,因为只要显示PayPal活动就会调用onActivityResult()
代码。
答案 1 :(得分:0)
我认为你正在做错误的实现。如果你想获得sub的结果,你必须为子活动编写startActivityForResult()并从main获取活动结果