我有一个片段,我从片段开始一个活动。现在我想从新活动中的片段中调用一个方法。
我尝试使用界面,但似乎我不能,因为我没有在片段中创建一个新活动的对象来让它调用setListener()
。我正在使用意图启动新活动。
我无法找到如何在新活动中获取片段实例或如何调用片段中的方法。任何帮助都会很棒!
答案 0 :(得分:0)
片段与活动紧密耦合。您始终需要创建活动作为片段的主机。
Fragment表示一个行为或用户界面的一部分 活动。您可以将单个活动中的多个片段组合到一起 构建多窗格UI并在多个活动中重用片段。您 可以将片段视为活动的模块化部分,具有 它自己的生命周期,接收自己的输入事件,你可以 在活动运行时添加或删除(有点像“子” 活动“你可以在不同的活动中重复使用。”
因此,您需要在活动之间进行通信。活动不应与未托管的片段通信。但它应该与托管片段的Activity进行通信。
例如,
如果你有两个Activity是ActivityOne和ActivityTwo。 ActivityOne有一个名为ActivityOneFragment的片段。
当您需要从ActivityTwo获取ActivityOneFragment时,您需要与ActivityOne通信,然后告诉它获取ActivityOneFragment:
ActivityTwo - > ActivityOne - > ActivityOneFragment
你不应该这样做:
ActivityTwo - > ActivityOneFragment
答案 1 :(得分:-1)
不,你不能这样做。因为后台活动暂停/死亡。所以你无法访问它的方法。
如果是通用方法,可以将该方法放在其他类中。把它称为你的实用工具类。