11

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

因此按照本网站的指导' https://github.com/JakeWharton/RxBinding '

但我无法在我的 Kotlin 文件中导入任何 Android UI 小部件。 如果我在 Java 文件中使用这些小部件,它的工作正常。 因此,没有找到这个问题的实际情况。

以下是在同一个项目中使用的 gradle 文件和类文件(kotlin 和 java)供参考

构建.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 类

在此处输入图像描述

RxBindingExample.kt 类

在此处输入图像描述

已尝试在 SO 上探索此问题,但问题或解决方案可用于 lib 'com.jakewharton.rxbinding2:rxbinding' 的早期版本

4

1 回答 1

17

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

根据语言的不同,有不同的使用方式,请注意@file:JvmName("RxTextView")开头的 。如果你使用 java 类 RxTextView 是可见的,在 kotlin 中你应该使用 lib 提供的扩展函数,textChangeEvents()就是一个例子。

像这样,这将获得可观察的,例如:

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

编辑:

似乎我引用的旧类已被删除,这是另一个: https ://github.com/JakeWharton/RxBinding/blob/master/rxbinding/src/main/java/com/jakewharton/rxbinding4/widget/ TextViewAfterTextChangeEventObservable.kt

于 2019-05-28T12:17:32.913 回答