RxBinding用来处理安卓UI响应,沿用了RxJava(android)的风格,可以切换线程和变形,让代码可读性提高。上代码:
1、RxActivity
package com.example.test.activity;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;
import com.example.test.R;
import com.jakewharton.rxbinding.view.RxView;
import com.jakewharton.rxbinding.widget.RxCompoundButton;
import java.util.concurrent.TimeUnit;
import rx.functions.Action1;
/**
* @authore WinterFellSo 2017/3/22
* @purpose Rx系列库,RxJava(Android)、RxBingding
*/
public class RxActivity extends BaseActivity {
private Button throttleFirst;
private Button showColor;
private CheckBox checkBoxChange;
@Override
protected int getContentLayout() {
return R.layout.activity_rx;
}
@Override
protected void initGui() {
throttleFirst = (Button) findViewById(R.id.throttleFirst);
showColor = (Button) findViewById(R.id.showColor);
checkBoxChange = (CheckBox) findViewById(R.id.checkBoxChange);
}
@Override
protected void initAction() {
//两秒钟之内只取一个点击事件,防抖操作
RxView.clicks(throttleFirst)
.throttleFirst(2, TimeUnit.SECONDS)
.subscribe(new Action1<Void>() {
@Override
public void call(Void aVoid) {
Toast.makeText(RxActivity.this, "点击", Toast.LENGTH_SHORT).show();
}
});
//监听长按时间
RxView.longClicks(throttleFirst)
.subscribe(new Action1<Void>() {
@Override
public void call(Void aVoid) {