片段的onActivityResult [英] onActivityResult For Fragment

查看:135
本文介绍了片段的onActivityResult的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前有一个托管单个片段的基本活动。在片段内部,我有一个启动联系人选择器的方法。

I currently have a base activity which is hosting a single fragment. Inside the fragment I have a method which starts the contact chooser.

private void chooseContacts() {
    Intent pickContactIntent = new Intent(Intent.ACTION_PICK,      ContactsContract.Contacts.CONTENT_URI);
    pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
    startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
}

当此活动返回时,我应该如何捕获结果。我尝试添加

When this activity returns how should I capture the results. I have tried adding a

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //Handle Code
}

我的基本活动和片段但这两种方法都没有被触发。如果可能的话,我想让片段处理返回,以免混淆活动。

to both my base Activity and the fragment but neither method are being triggered. If possible I would like to have the fragment handle the return so as not to muddy up the activity.

请告诉我这种情况下的最佳做法。

Please let me know what the best practice is in this situation.

更新:

如果我改变:

startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);

getActivity().startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);

然后它有效,但其他帖子让我认为这是不正确的。

then it works, but other posts have made me think that is incorrect.

推荐答案

我认为你应该仍然直接在片段中使用调用 startActivityForResult(),不要使用 getActivity()。startActivityForResult()

I think you should still use the call startActivityForResult() directly in fragment, no use getActivity().startActivityForResult().

我在Fragment中调用 startActivityForResult()并实现 onActivityResult 在Fragment中, onActivityResult()被正确调用。

I call the startActivityForResult() in Fragment and implement the onActivityResult in Fragment, the onActivityResult() is called correctly.

你不能打电话给 startActivityForResult()在活动中,否则将不会调用Fragment中的 onActivityResult()

you can not call startActivityForResult() in activity, otherwise the onActivityResult() in Fragment will not be called.

这篇关于片段的onActivityResult的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆