Я хочу использовать API привязки RxJava для виджетов пользовательского интерфейса Android в своем проекте.
Поэтому, следуя инструкциям на этом сайте 'https://github.com/JakeWharton/RxBinding'
Но я не могу импортировать какие-либо виджеты пользовательского интерфейса Android в свой файл Kotlin. Где он работает нормально, если я использую эти виджеты в файле 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
Класс RxBindingExample.kt
Пытались изучить этот вопрос на S.O. но вопросы или решения доступны для предыдущей версии библиотеки 'com.jakewharton.rxbinding2: rxbinding'
@LucianoFerruzzi: Да, я тоже пробовал, но показал ту же ошибку «Неразрешенная ссылка: RxTextView» в строке импорта.
Проверьте эту ссылку: 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
Пробовали ли вы вручную добавить тот же импорт из первого примера?