我的onEvent在一个片段中,如下所示,在我的Kotlin函数中捕获活动的身份验证。但是,我无法触发onEvent触发。
@Subscribe
fun onEvent(event: AuthenticationEvent) {
if (event.isAuthenticated) {
startFragment(signInFragment, SignInFragment.TAG)
} else {
startFragment(signOutFragment, SignOutFragment.TAG)
}
}
在我的build.gradle文件中,我添加了这个
compile 'org.greenrobot:eventbus:3.0.0'
我有什么需要做的才能获得此触发器吗?
答案 0 :(得分:3)
要在Kotlin中使用注释处理器,您需要使用Kotlin Annotation Processor tool (kapt)。
将此添加到您的build.gradle
:
apply plugin: 'kotlin-kapt'
According to GreenRobot(并经过我的测试证实),这就是获取@Subscribe
所需的一切。
答案 1 :(得分:3)
@Subscribe
注释的事件处理函数公开 在build.gradle
文件中添加代码:
apply plugin: 'kotlin-kapt'
implementation "org.greenrobot:eventbus:3.0.0"
kapt 'org.greenrobot:eventbus-annotation-processor:3.0.1'
如果您想使用Subscriber Index
,请将代码添加到build.gradle
:
kapt {
arguments {
arg('eventBusIndex', 'your-package.MyEventBusIndex')
}
}
答案 2 :(得分:0)
你可以使用Square Otto,它的工作方式与Kotlin完全相同。但是,要小心,因为EventBuses容易使Android代码过于复杂,这就是为什么他们不赞成使用Rx来支持框架的原因。