0

我已将我的一些视图从 Activity 委托给一个名为 BottomBar 的类。

我想要的是当我返回按钮将事件发送到 BottomBar 以便开始播放动画时。

@Override
public void onBackPressed() {
    if (isSubMenuDisplayed) {
        isSubMenuDisplayed = false; 
        EventBus.getDefault().post(new EventStartReverseAnimation(true));
        //post event to fragment
    } else {
        super.onBackPressed();
    }
}

这是我的 onBackPressed() 代码,我在 BottomBar 有 onEvent :

public void onEventStartReverseAnimation(EventStartReverseAnimation event) {
    swedsFlag = event.getFlag();
    if (swedsFlag) {
        playBackAnimation(true);
    }
}

当然,我在 Activity 上注册/取消注册 EventBus,然后我尝试在 BottomBar 类上注册 eventBus,但我得到了帖子标题中的异常:

 de.greenrobot.event.EventBusException: Subscriber class android.app.Application has no public methods called onEvent

该应用程序在我为 BottomBar 类注册 EventBus 的行处崩溃:

    public BottomBar(Context context) {
    this.context = context;
    myServiceClient = new MyServiceClient();
    myServiceClient.initializeRestClient();
    bbUtils = new BottomBarUtils(context);

    EventBus.getDefault().register(context);
} 
4

1 回答 1

3

我在底部栏中有 onEvent

不,你没有,根据那个代码片段。你有onEventStartReverseAnimation(). 将该方法重命名为onEvent(), 或onEventMainThread(), 或其他受支持的方法名称之一。

于 2015-05-17T20:08:09.237 回答