1

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

4

3 回答 3

6

onActivityResult()将首先在 Activity 上调用。super.onActivityResult()之后,如果您调用Activity ,它将与 Fragments联系。

这是因为 Fragments 的模块化设计。如果有结果进来,Activity 会处理它,而未处理的结果(如果有的话)可以交给 Fragments。

回答您的问题:决定在哪里处理与您的应用程序设计/代码相关的结果。如果在Fragment中处理,通过回调fe将结果返回给Activity,可以直接在Activity中处理。

于 2013-10-22T13:59:37.877 回答
0

onActivityResult()您必须写下HostActivity.Java如下:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  //do something
}
于 2013-10-22T13:13:45.047 回答
0

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

于 2013-10-22T13:25:15.350 回答