gpt4 book ai didi

java - fragment 的 onActivityResult

转载 作者:IT老高 更新时间:2023-10-28 20:55:27 25 4
gpt4 key购买 nike

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

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);
}

当这个 Activity 返回时,我应该如何捕获结果。我试过添加一个

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

到我的基本 Activity 和 fragment ,但没有触发任何方法。如果可能的话,我想让 fragment 处理返回,以免混淆 Activity 。

请告诉我在这种情况下的最佳做法是什么。

更新:

如果我改变:

startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);

getActivity().startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);

然后它可以工作,但其他帖子让我认为这是不正确的。

最佳答案

我认为你还是应该直接在 fragment 中使用调用startActivityForResult(),不要使用getActivity().startActivityForResult()

我在Fragment中调用startActivityForResult(),在Fragment中实现onActivityResultonActivityResult()调用正确。

activity中不能调用startActivityForResult(),否则Fragment中的onActivityResult()将不会被调用。

关于java - fragment 的 onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com