美文网首页Android开发
RxJava学习(四)combineLatest操作符的应用

RxJava学习(四)combineLatest操作符的应用

作者: 大虾啊啊啊 | 来源:发表于2018-04-04 15:11 被阅读0次

1.combineLatest操作符
顾名思义就是合并最近的事件,也就是说,下一个被观察者和上一个被观察者最近发射的事件合并。
使用场景:EditText 多个表单的联合判断。
在这注意 Observable 是rx包下的,不是reactivex包下的。

/**
     * 监听输入框 改变按钮
     */
    private void initStata() {
        //skip(是为了跳过第一个事件发射,防止输入框为空的时候,也发射事件)
        rx.Observable observable1 = RxTextView.textChanges(tvName);
        rx.Observable observable2 = RxTextView.textChanges(tvAge);
        rx.Observable observable3 = RxTextView.textChanges(tvSex);
        //combineLatest使用 combineLatest操作符合并事件并发射
        rx.Observable.combineLatest(observable1, observable2, observable3, new Func3<CharSequence,CharSequence,CharSequence,Boolean>() {
            @Override
            public Boolean call(CharSequence o, CharSequence o2, CharSequence o3) {
                return (!TextUtils.isEmpty(o.toString()))&&(!TextUtils.isEmpty(o2.toString()))&&(!TextUtils.isEmpty(o3.toString()));
            }
        }).subscribe(new Action1<Boolean>() {
            @Override
            public void call(Boolean o) {
                Log.e(TAG, "call: "+o );
                if(o){
                    btnOk.setBackgroundColor(Color.parseColor("#FF0000"));
                }
                else{
                    btnOk.setBackgroundColor(Color.parseColor("#0000FF"));
                }

            }
        });
    }

相关文章

网友评论

    本文标题:RxJava学习(四)combineLatest操作符的应用

    本文链接:https://www.haomeiwen.com/subject/qnikhftx.html