尝试在两个片段之间进行通信时,EventBus无法正常工作

时间:2016-02-20 21:21:00

标签: android android-fragments android-viewpager communication greenrobot-eventbus

我在viewpager中设置了三个片段,就像滑动标签布局一样。我需要将一个字符串值从一个片段传递到另一个片段。

首先,我尝试设置一个界面,如此处的答案建议How to pass data between fragments 这对我不起作用。想法是片段A告诉主要活动,然后主要活动告诉片段B.

所以我找了不同的答案

http://android-er.blogspot.com/2012/06/communication-between-fragments-in.html

看起来很有前途但没有用,因为我无法使用与我的代码相同的功能,因为我使用google的slidingtablayout而不是旧的操作栏设置了我的viewpager。

现在我偶然发现了EventBus。我真的认为这是我的答案。我把它添加到我的代码中就像下面的答案一样。什么都没有崩溃,但也没有任何作用。

我在logcat中找到了这个:

D / Event:没有订阅者注册事件类tk.abestudying.atob.TextChangedEvent D /事件:没有订阅者注册活动类de.greenrobot.event.NoSubscriberEvent

Communication between Fragments in ViewPager

Communication between SlidingTabLayout tabs

以下是我的代码:已删除链接

请帮忙。我已经尝试了几个小时的解决方案,但我很难过。谢谢。

编辑:我通过谨慎和重写代码来实现它。

1 个答案:

答案 0 :(得分:2)

您似乎错过了@Subscribe注释。根据{{​​3}},订阅方法应如下所示:

@Subscribe public void onEvent(AnyEventType event) {/* Do something */};