美文网首页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