package com.example.administrator.rxbinding;
import android.app.Activity;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import com.jakewharton.rxbinding.widget.RxCompoundButton;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import rx.Observable;
import rx.Observer;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
import rx.subjects.Subject;
public class Main2Activity extends Activity {
private Button but1, but2, but3;
private CheckBox cb;
/*
数据的合并
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
myOncick();
}
private void myOncick() {
/*
倒计时发送验证码
*/
but2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final int take = 10;
Observable.interval(0, 1, TimeUnit.SECONDS).take(take + 1)
.map(new Func1<Long, Long>() {//进行转换
@Override
public Long call(Long aLong) {
return take - aLong;
}
})
.observeOn(AndroidSchedulers.mainThread())//发射用的是observeOn
.doOnSubscribe(new Action0() {//执行的时候不可点击
@Override
public void call() {
but2.setEnabled(false);
}
})
.subscribe(new Observer<Long>() {
@Override
public void onCompleted() {
but2.setEnabled(true);
but2.setText("按钮");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Long aLong) {
Log.d("xxxx", aLong + "");
but2.setText(aLong + "");
}
});
}
});
/*
把两个结果进行合并
*/
but1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Observable.merge(getListObserver(), getListObserverWodk()).subscribe(new Subscriber<List<GouWuChe>>() {
@Override
public void onCompleted() {
Log.d("onCompleted", "onCompleted");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(List<GouWuChe> gouWuChes) {
for (GouWuChe gouWuChe : gouWuChes) {
Log.d("xxxxx", gouWuChe.toString());
}
}
});
}
});
RxCompoundButton.checkedChanges(cb).subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean aBoolean) {
but3.setEnabled(aBoolean);
but3.setBackgroundColor(aBoolean ? Color.parseColor("#666666") : Color.parseColor("#999999"));
}
});
}
private void initView() {
but1 = (Button) findViewById(R.id.but1);
but2 = (Button) findViewById(R.id.but2);
but3 = (Button) findViewById(R.id.but3);
cb = (CheckBox) findViewById(R.id.cb);
}
private Observable<List<GouWuChe>> getListObserver() {
List<GouWuChe> list = new ArrayList<>();
list.add(new GouWuChe(1, "菜鸟"));
list.add(new GouWuChe(3, "菜鸟3"));
list.add(new GouWuChe(2, "菜鸟2"));
list.add(new GouWuChe(5, "菜鸟5"));
return Observable.just(list);//发射出去
}
private Observable<List<GouWuChe>> getListObserverWodk() {
List<GouWuChe> list = new ArrayList<>();
list.add(new GouWuChe(4, "菜鸟4"));
list.add(new GouWuChe(6, "菜鸟6"));
list.add(new GouWuChe(7, "菜鸟6"));
list.add(new GouWuChe(8, "菜鸟7"));
return Observable.just(list).subscribeOn(Schedulers.io());//发射出去
}
}
Rxjava2
最新推荐文章于 2023-02-15 10:05:23 发布