Kotlin:我们可以在Kotlin中使用EventBus的@Subscribe(GreenRobot)吗?

Ely*_*lye 9 android kotlin greenrobot-eventbus

我的onEvent在一个片段中,如下所示,在我的Kotlin函数中捕获活动的身份验证.但是,我无法得到onEvent触发的那个.

@Subscribe
fun onEvent(event: AuthenticationEvent) {
    if (event.isAuthenticated) {
        startFragment(signInFragment, SignInFragment.TAG)
    } else {
        startFragment(signOutFragment, SignOutFragment.TAG)
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle文件中,我添加了这个

compile 'org.greenrobot:eventbus:3.0.0'
Run Code Online (Sandbox Code Playgroud)

有什么我需要做的才能获得这个触发器吗?

PLN*_*ech 5

要在 Kotlin 中使用注释处理器,您需要使用Kotlin 注释处理器工具 (kapt)

将此添加到您的build.gradle

apply plugin: 'kotlin-kapt'
Run Code Online (Sandbox Code Playgroud)

根据 GreenRobot(并通过我的测试证实),这就是您需要获得的全部内容@Subscribe

  • 从 EventBus 3.1.1 开始,我们不再需要添加它了。无论如何,这是正确的解决方法。 (2认同)