android - 尝试在两个 fragment 之间进行通信时 EventBus 不工作

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

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

首先,我尝试设置一个界面,就像此处建议的答案 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

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

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

我在 logcat 中找到了这个:

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

Communication between Fragments in ViewPager

Communication between SlidingTabLayout tabs

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

请帮忙。几个小时以来,我一直在尝试解决方案,但我很困惑。谢谢。

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

最佳答案

看起来您缺少 @Subscribe 注释。根据README ,订阅方法应如下所示:

@订阅 public void onEvent(AnyEventType event) {/* 做点什么 */};

关于android - 尝试在两个 fragment 之间进行通信时 EventBus 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529195/

相关文章:

java - 使用媒体播放器或音池在 fragment 内的 onClick 中播放声音

android - 方向更改时 fragment View 为空

android - FragmentPagerAdapter.getItem (int) 显示错误的 Fragment

java - 单击时如何只选择一个按钮 -QUIZ ANDROID

android - 如何在 Android 上使用 Flutter 成功完成应用内购买?

Android MediaPlayer 准备失败

带有 Dagger2 的 Android Kotlin,lateinit var 尚未初始化

java - E/FirebaseInstanceId : Token retrieval failed: AUTHENTICATION_FAILED Android studio

android - onOptionsItemSelected 未从 fragment 主详细信息 View 调用

java - 在 ViewPager 中使用多个图像