从意图活动访问片段方法

时间:2018-02-28 21:44:07

标签: java android android-fragments method-call

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

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

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

2 个答案:

答案 0 :(得分:0)

片段与活动紧密耦合。您始终需要创建活动作为片段的主机。

来自documentation

  

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

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

例如,
如果你有两个Activity是ActivityOne和ActivityTwo。 ActivityOne有一个名为ActivityOneFragment的片段。

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

  

ActivityTwo - > ActivityOne - > ActivityOneFragment

你不应该这样做:

  

ActivityTwo - > ActivityOneFragment

答案 1 :(得分:-1)

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

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