我目前有一个基础活动,它托管了一个单一的片段。在片段内,我有一个启动联系人选择器的方法。
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);
}
当这个活动返回时,我应该如何捕获结果。我尝试添加了一个标签。@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);
那么它可以正常工作,但其他的帖子让我觉得这是不正确的。