android – Otto从Fragment传递到Activity

过去几天我一直在和奥托一起玩,这太棒了.然而,我遇到了一个问题,我试图从片段到活动进行交流.为了简单起见,我有一个活动来保存片段,而在片段中我有一个按钮,它只是简单地发布一个事件.

@Inject Bus bus;
...
...
bus.post(new ReadStatusEvent("23"));

在Activity中我有一个Subscribe方法.

@Subscribe
public void onReadStatusEvent(ReadStatusEvent event){
    Timber.i("sub:"+event.getReadStatusID());
}

这是活动

public class ReadStatusEvent {
  private final String readStatusID;

  public ReadStatusEvent(String readStatusID) { this.readStatusID = readStatusID; }

  public String getReadStatusID() { return readStatusID; }
}

我正在使用Dagger,所以我的Otto Bus是一个由SimpleModule文件注入的单例.

@Provides @Singleton
Bus provideBus() {
    return new Bus(ThreadEnforcer.ANY);
}

我一整天都在努力,但由于某种原因,从未调用过Subscribe方法.

编辑:我刚刚尝试使用Otto plugin for Android Studio,每当我点击@Subscribe或bus.post(..)时,它会继续搜索但找不到任何内容(到目前为止没有找到用法).我想我在某处做了一件非常糟糕的事情.

解决方法:

你对奥托插件的暗示使我想到了你的进口.

您确定使用的是“com.squareup.otto.Subscribe”而不是“com.google.common.eventbus.Subscribe”或任何其他套餐吗?

上一篇:android – 与Otto和Dagger的NullPointerException


下一篇:java – 如何有效地使用事件总线?