应该在哪里处理onActivityResult,对话框片段,片段或活动?

时间:2013-10-22 13:09:01

标签: android fragment android-camera-intent dialogfragment onactivityresult

在我的Android应用程序中,我有一个片段,用户可以从图库或相机添加图片。我已经创建了一个警告对话框并将其放在DialogFragment中。当用户选择一个选项时,我调用startActivityForResult。我的问题是,理想情况下,这个结果应该在哪里处理? (即我应该在哪里放置onActivityResult?)在DialogFragment类中,主机片段还是主机活动?这有关系吗?

3 个答案:

答案 0 :(得分:6)

首先会在Activity上调用

onActivityResult()。之后,如果您在活动中致电super.onActivityResult(),则会与片段联系。

这是因为Fragments的模块化设计。如果结果出现,则Activity会处理它,并且可以将未处理的结果(如果有)连接到Fragments。

回答您的问题:确定处理应用设计/代码结果的合理位置。如果你在Fragment中处理它并通过回调函数将结果发送回Activity,你可以直接在Activity中处理它。

答案 1 :(得分:0)

您必须在onActivityResult()中写下HostActivity.Java,如下所示:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  //do something
}

答案 2 :(得分:0)

是的,这很重要;它是接收结果的活动,根据该结果,您决定采取进一步采取的行动,通知您的碎片或您需要的任何内容。