奥托从片段到活动的沟通

Raz*_*ill 3 android android-fragments android-activity otto

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

@Inject Bus bus;
...
...
bus.post(new ReadStatusEvent("23"));
Run Code Online (Sandbox Code Playgroud)

在Activity中我有一个Subscribe方法.

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

这是活动

public class ReadStatusEvent {
  private final String readStatusID;

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

  public String getReadStatusID() { return readStatusID; }
}
Run Code Online (Sandbox Code Playgroud)

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

@Provides @Singleton
Bus provideBus() {
    return new Bus(ThreadEnforcer.ANY);
}
Run Code Online (Sandbox Code Playgroud)

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

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

Seb*_*gel 11

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

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