【发布时间】:2013-12-01 01:51:36
【问题描述】:
我目前有一个托管单个片段的基本活动。在片段内部,我有一个启动联系人选择器的方法。
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 和片段,但没有触发任何方法。如果可能的话,我想让片段处理返回,以免混淆活动。
请告诉我在这种情况下的最佳做法是什么。
更新:
如果我改变:
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
到
getActivity().startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
然后它可以工作,但其他帖子让我认为这是不正确的。
【问题讨论】:
-
还要确保您的 hostActivity 启动模式未设置为 singleTask 或 singleInstance stackoverflow.com/a/38760091/3496570
标签: java android android-intent android-fragments android-contacts