Android rx功能Action1是否已被弃用?
我在Android应用程序中有一个用例,我希望允许用户在开始搜索之前输入“一定数量”的文本进行搜索。当用户键入其他文本时,我想使用输入的完整文本启动进一步的搜索 在研究了许多选项后,我找到了Jake WhartonsAndroid rx功能Action1是否已被弃用?,android,rx-binding,Android,Rx Binding,我在Android应用程序中有一个用例,我希望允许用户在开始搜索之前输入“一定数量”的文本进行搜索。当用户键入其他文本时,我想使用输入的完整文本启动进一步的搜索 在研究了许多选项后,我找到了Jake WhartonsRxBinding库,并认为这将是一个很好的解决方案 使用如下代码:- RxTextView.textChanges(editTextVariableName) .debounce(500, TimeUnit.MILLISECONDS)
RxBinding
库,并认为这将是一个很好的解决方案
使用如下代码:-
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已重命名为Consumer”的文档,它仍然存在并且没有被弃用,只是重命名了您需要
Action1
有什么特殊原因吗?如果你能将Android语言级别设置为8,你可以在那里使用lambda;否则,您可以只使用消费者
而不是Action1
。RxJava2中没有Action1
。
// 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'