在使用最新的com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2库时,发现找不到RxTextView和其他小部件。

12

我想在我的项目中使用RxJava绑定API来操作Android UI小部件。

因此,我按照此网站的指导 'https://github.com/JakeWharton/RxBinding' 进行操作。

但是,在我的Kotlin文件中无法导入任何Android UI小部件。 然而,如果在Java文件中使用这些小部件,则可以正常工作。 因此,无法找到此问题的实际原因。

以下是在同一项目中使用的gradle文件和类文件(包括Kotlin和Java)的参考。

build.gradle

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'androidx.core:core-ktx:1.2.0-alpha01'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
    //RxBinding
    implementation 'com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2'
}

BindingExample.java class

enter image description here

RxBindingExample.kt class

enter image description here

尝试在S.O.上探索此问题,但问题或解决方案仅适用于较早版本的库'com.jakewharton.rxbinding2:rxbinding'


你尝试手动添加第一个示例中的相同导入了吗? - Luciano Ferruzzi
@LucianoFerruzzi:是的,我也尝试过了,但在导入行显示相同的错误“未解决的引用:RxTextView”。 - A.R.
1个回答

18

请查看此参考链接:https://github.com/JakeWharton/RxBinding/blob/master/rxbinding/src/main/java/com/jakewharton/rxbinding3/widget/TextViewTextChangeEventObservable.kt

根据使用的语言不同,有不同的使用方法。请注意在代码开头的@file:JvmName("RxTextView")。如果您使用的是Java,则可以使用类RxTextView,而在Kotlin中,您应该使用库提供的扩展函数,例如textChangeEvents()

这样做将获得可观察对象,例如:

val someTextView = TextView(context)
someTextView.textChangeEvents()

编辑:

看起来我引用的旧类别已被删除,这里有另一个: https://github.com/JakeWharton/RxBinding/blob/master/rxbinding/src/main/java/com/jakewharton/rxbinding4/widget/TextViewAfterTextChangeEventObservable.kt


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接