2

我在我的 Android 应用程序中有一个用例,我希望允许用户在开始搜索之前输入“一定数量”的文本进行搜索。当用户键入其他文本时,我想使用输入的完整文本启动进一步的搜索。

在研究了许多选项后,我找到了 Jake WhartonsRxBinding图书馆,并认为这将是一个很好的解决方案

使用如下代码:-

RxTextView.textChanges(editTextVariableName)
            .debounce(500, TimeUnit.MILLISECONDS)
            .subscribe(new Action1<String>() {
                @Override
                public void call(String value) {
                    // do some work with the updated text
                }
            });

但是我无法导入Action1,上面的代码不再有效吗?我缺少哪个依赖项?

我的 gradle 文件类似于这个

// https://mvnrepository.com/artifact/com.jakewharton.rxbinding2/rxbinding
implementation group: 'com.jakewharton.rxbinding2', name: 'rxbinding', version: '2.1.1'
// https://mvnrepository.com/artifact/com.jakewharton.rxbinding2/rxbinding-appcompat-v7
implementation group: 'com.jakewharton.rxbinding2', name: 'rxbinding-appcompat-v7', version: '2.1.1'
// https://mvnrepository.com/artifact/com.jakewharton.rxbinding2/rxbinding-support-v4
implementation group: 'com.jakewharton.rxbinding2', name: 'rxbinding-support-v4', version: '2.1.1'

// https://mvnrepository.com/artifact/io.reactivex.rxjava2/rxandroid
implementation group: 'io.reactivex.rxjava2', name: 'rxandroid', version: '2.0.2'
// https://mvnrepository.com/artifact/io.reactivex.rxjava2/rxjava
implementation group: 'io.reactivex.rxjava2', name: 'rxjava', version: '2.1.10'
4

1 回答 1

5

根据RxJava 2的文档“Action1 已重命名为 Consumer”,所以它仍然存在并且没有被弃用,只是重命名了

于 2018-03-14T10:04:21.270 回答