【问题标题】:Where should onActivityResult be handled, dialog fragment, fragment, or activity?onActivityResult 应该在哪里处理,对话框片段、片段还是活动?
【发布时间】:2013-10-31 09:07:00
【问题描述】:

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

【问题讨论】:

  • 我在托管 DialogFragments 的活动中使用 ActivityForResult()。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-02
        • 2014-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-30
        相关资源
        最近更新 更多