从活动中调用片段事件

Posted

技术标签:

【中文标题】从活动中调用片段事件【英文标题】:Call fragment events from activity 【发布时间】:2011-07-09 15:58:51 【问题描述】:

所以,我让我的片段中的事件传递给活动,那么我该如何做才能让活动轮流通知片段 B 做某事。当片段 A 单击列表项时,我想对 B 进行片段填充以填充自定义列表。那么,它将事件发送到活动,现在我如何让活动调用片段 B 中的事件?

【问题讨论】:

【参考方案1】:

在你的活动中这样做的一种方法是:

FragmentB fragmentB = (FragmentB)getFragmentManager().findFragmentById(R.id.fragmentBId);
fragmentB.performSomeTask();

这当然是假设您在 FragmentB 中有一个可公开访问的方法,称为 performSomeTask();

希望有帮助!

【讨论】:

我很愚蠢,如果它被声明为 public 和 static,我可以通过调用 fragment_b.doTask() 来做到这一点。 如果您在活动的 onCreate 方法中调用该 performSomeTask 方法,并假设您在其上填充了一些编辑文本字段。如果您在片段的 onActivityCreate 方法中初始化编辑文本,则会出现空指针异常。这里最好的解决方案是什么?【参考方案2】:

最佳实践可能是为两个片段创建接口,然后让活动实现接口。您希望片段之间有良好的解耦,以便您可以在其他地方重用它们。

【讨论】:

以上是关于从活动中调用片段事件的主要内容,如果未能解决你的问题,请参考以下文章

从android中的活动调用片段

从片段中调用父母的活动

如何从主要活动中调用片段方法

如何从另一个活动中调用片段

从片段内部调用活动方法[重复]

Android:从片段调用活动