【问题标题】:Access fragment method from intent activity从意图活动访问片段方法
【发布时间】:2018-02-28 21:44:06
【问题描述】:

我有一个片段,我正在从片段开始一个活动。现在我想从新活动中的片段中调用一个方法。

我尝试使用接口,但似乎我不能,因为我没有在片段中创建新活动的对象来让它调用setListener()。我正在使用意图来启动新活动。

我无法找到如何在新活动中获取片段实例或如何在片段中调用方法。任何帮助都会很棒!

【问题讨论】:

    标签: java android android-fragments method-call


    【解决方案1】:

    片段与 Activity 紧密耦合。您始终需要创建 Activity 作为片段的宿主。

    来自documentation

    片段表示一个行为或用户界面的一部分 活动。您可以在单个活动中组合多个片段以 构建多窗格 UI 并在多个活动中重用片段。你 可以将片段视为活动的模块化部分,它具有 它自己的生命周期,接收自己的输入事件,你可以 在活动运行时添加或删除(有点像“子 活动”,您可以在不同的活动中重复使用)。

    因此,您需要在活动之间进行通信。活动不应与它未托管的片段进行通信。但它应该与托管片段的 Activity 进行通信。

    例如,
    如果您有两个 Activity,即 ActivityOne 和 ActivityTwo。其中 ActivityOne 有一个名为 ActivityOneFragment 的 Fragment。

    当你需要从ActivityTwo获取ActivityOneFragment时,你需要和ActivityOne通信然后告诉它获取ActivityOneFragment:

    ActivityTwo -> ActivityOne -> ActivityOneFragment

    你不应该这样做:

    ActivityTwo -> ActivityOneFragment

    【讨论】:

      【解决方案2】:

      不,你不能那样做。因为后台活动已暂停/死亡。所以你不能访问它的方法。

      如果是通用方法,你可以将该方法放在其他类中。称它为你的实用程序类。

      【讨论】:

        猜你喜欢
        • 2014-08-30
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多