【问题标题】:EventBus not working when trying to communicate between two fragments尝试在两个片段之间进行通信时,EventBus 不起作用
【发布时间】:2016-06-02 10:28:22
【问题描述】:

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

首先,我尝试设置一个界面,如这里的答案建议How to pass data between fragments 这对我不起作用。这个想法是 Fragment A 告诉 Main Activity,然后 Main Activity 告诉 Fragment B。

所以我寻找不同的答案

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

看起来很有希望,但没有奏效,因为我无法在代码中使用相同的功能,因为我使用谷歌的slidingtablayout而不是旧的操作栏设置了我的viewpager。

现在我偶然发现了 EventBus。我真的认为这是我的答案。正如以下两个答案所建议的那样,我将它添加到我的代码中。没有崩溃,但也没有任何效果。

我在 logcat 中找到了这个:

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

Communication between Fragments in ViewPager

Communication between SlidingTabLayout tabs

这是我的代码:链接已删除

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

编辑:我通过谨慎和重写代码使其工作。

【问题讨论】:

  • 使用EventBus 似乎有点矫枉过正。如果你还没有放弃Interfaces,这里有一个关于Inter-Fragment Communication on YouTube youtube.com/watch?v=GDHnIZEJ76I的非常简单和非常详细的解释和示例。我希望这会有所帮助。
  • 感谢猫王的建议,但我设法让 EventBus 完美运行

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


【解决方案1】:

您似乎缺少@Subscribe 注释。根据README,订阅方法应该是这样的:

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

【讨论】:

  • @Subscribe 不需要。我只是在非常谨慎的情况下重写了我的代码,然后我让它工作了。我的一个布局文件有一个偷偷摸摸的问题。谢谢你..
  • @Abe 知道偷偷摸摸的问题是什么吗?我现在可能正在经历这种情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多