【发布时间】:2018-10-09 08:14:59
【问题描述】:
我有一个 Activity,其中包含一个 ViewPager 和四个选项卡。 每个选项卡都有一个片段。
当我单击选项卡 4 中的某些内容时,我希望选项卡 3 刷新(或访问选项卡 3 中的非静态方法)..我已经搜索过,但我发现的都是这个:
FragmentB fragment = (FragmentB)getFragmentManager().findFragmentByTag("FragmentB");
我不能使用它,因为我从未在片段上设置标签。
我也可以从另一个片段中的片段调用一个函数,但它必须是静态的,我不希望这样,因为它里面的所有东西也必须是静态的,这会给我带来麻烦..
有解决办法吗?
【问题讨论】:
-
看看 greenrobot 的 EventBus github.com/greenrobot/EventBus。它使片段/活动之间的通信更容易。
-
EventBus 是最好的解决方案,但您也可以使用接口这个更好的选择。
-
您通常不希望在您的片段之间进行直接通信,因为这会使它们相互依赖。相反,您通常会在 Activity 中实现一个接口并从 Tab4Fragment 调用它,然后 Activity 将执行 Tab3Fragment 的更新。从这里开始阅读developer.android.com/training/basics/fragments/communicating
-
谢谢大家!我使用了 EventBus,我的天哪,这是一个多么简单的好工具!我现在很开心,祝各位程序员度过愉快的一天:)
标签: android android-viewpager android-tabs android-pageradapter