如何为片段调用onActivityResult

时间:2014-05-21 08:51:18

标签: java android

我有这段代码

Intent intent = new Intent(getActivity(), PaymentActivity.class);
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);
getActivity().startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT);

覆盖函数调用onActivityResult,但它调用结果。

3 个答案:

答案 0 :(得分:1)

不要使用getActivity()。startActivityForResult(intent,paypal.REQUEST_CODE_PAYMENT);

这会调用活动中的onActivityResult

而是使用片段

中的方法

startActivityForResult(intent,paypal.REQUEST_CODE_PAYMENT);

答案 1 :(得分:1)

如果您从startActivityForResult致电Fragment,结果会传递给Fragment。如果您从startActivityForResult致电Activity,结果会传递给Activity。当Fragment调用StartActivityForResult时,requestCode会更改Activity,因此它会知道如何将结果传递到Fragment

在你的情况下你应该换行:

getActivity().startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT);

为:

startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT);

答案 2 :(得分:0)

你在哪里覆盖onActivityForResult方法?。

如果答案在你的FragmentActivity中。 你应该使用:getActivity()。startActivityForResult

如果答案在你的片段中。 你应该使用:startActivityForResult。