[英]How to call onActivityResult for fragment
I have this code 我有这个代码
Intent intent = new Intent(getActivity(), PaymentActivity.class);
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);
getActivity().startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT);
override function call onActivityResult but it call the result. 覆盖函数调用onActivityResult但它调用结果。
Do not use getActivity().startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT); 不要使用getActivity()。startActivityForResult(intent,paypal.REQUEST_CODE_PAYMENT);
This calls onActivityResult in the activity 这会在活动中调用onActivityResult
Instead use the method in fragment 而是在片段中使用该方法
startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT); startActivityForResult(intent,paypal.REQUEST_CODE_PAYMENT);
If you call startActivityForResult
from the Fragment
the result will deliver to the Fragment
. 如果从Fragment
调用startActivityForResult
,结果将传递给Fragment
。 And if you call startActivityForResult
from the Activity
the result will deliver to the Activity
. 如果从Activity
调用startActivityForResult
,结果将传递给Activity
。 When Fragment
calls StartActivityForResult
the requestCode
will be changed by the Activity
, so it will know how to deliver the result to which Fragment
. 当Fragment
调用StartActivityForResult
, Activity
将更改requestCode
,因此它将知道如何将结果传递给Fragment
。
In your case you should change line: 在你的情况下你应该改变线:
getActivity().startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT);
to: 至:
startActivityForResult(intent, paypal.REQUEST_CODE_PAYMENT);
Where do you override the onActivityForResult method?. 你在哪里覆盖onActivityForResult方法?
If the answer is in your FragmentActivity. 如果答案在你的FragmentActivity中。 You should use: getActivity().startActivityForResult 你应该使用:getActivity()。startActivityForResult
If the answer is in your Fragment. 如果答案在你的片段中。 You should use: startActivityForResult. 你应该使用:startActivityForResult。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.