RxBinding
RxJava实现数据与视图的绑定使用到了RxBinding。RxBinding是一个开源项目,可以实现数据层与View层的绑定,当数据发生变化,View会自动更新UI。
RxBinding:https://github.com/JakeWharton/RxBinding
注意:RxBinding目前只支持RxJava1
RxJava操作符
本例涉及的RxJava操作符:
- ThrottleFirst — 允许设置一个时间长度,之后它会发送固定时间长度内的第一个事件,而屏蔽其它事件,在间隔达到设置的时间后,可以再发送下一个事件
代码实现
添加依赖
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.jakewharton.rxbinding:rxbinding:1.0.0'
RxJava实现
Button button = (Button) this.findViewById(R.id.prevent_duplicate_click);
RxView.clicks(button).throttleFirst(1, TimeUnit.SECONDS)
.subscribe(new Observer<Void>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Void aVoid) {
Log.i(TAG, "onNext: 按钮点击");
}
});




