@ Android 对多个EditText监听

RxJava的掌握

https://github.com/ReactiveX/RxJava/wiki/How-To-Use-RxJava
上面是官网连接,RXJava一直在升级,今天讲解以我项目中用的版本为准。

gradle版本

api ‘io.reactivex:rxjava:1.3.0’

项目代码

    telEt = contentView.findViewById(R.id.tel_et);    Observable telObservable = Observable.unsafeCreate(subscriber -> telEt.addTextChangedListener(new MyTextWatcher() {        @Override        public void afterTextChanged(Editable s) {            super.afterTextChanged(s);            subscriber.onNext(s.toString());        }    }));    imageCodeEt = contentView.findViewById(R.id.image_code_et);    Observable imageObservable = Observable.unsafeCreate(subscriber -> imageCodeEt.addTextChangedListener(new MyTextWatcher() {        @Override        public void afterTextChanged(Editable s) {            super.afterTextChanged(s);            subscriber.onNext(s.toString());        }    }));    imageCodeIv = contentView.findViewById(R.id.image_code_iv);    imageCodeIv.setOnClickListener(this);    vCodeEt = contentView.findViewById(R.id.v_code_et);    Observable vCodeObservable = Observable.unsafeCreate(subscriber -> vCodeEt.addTextChangedListener(new MyTextWatcher() {        @Override        public void afterTextChanged(Editable s) {            super.afterTextChanged(s);            subscriber.onNext(s.toString());        }    }));    Observable.combineLatest(telObservable, imageObservable, vCodeObservable, (s, s2, s3) -> !StringUtils.isEmpty(s) && !StringUtils.isEmpty(s2) && !StringUtils.isEmpty(s3)).subscribe(new Observer() {        @Override        public void onCompleted() {        }        @Override        public void onError(Throwable e) {        }        @Override        public void onNext(Boolean aBoolean) {            if (aBoolean) {                loginBtn.setClickable(true);                loginBtn.setText(activity.getString(R.string.login_btn));                loginBtn.setBackground(activity.getResources().getDrawable(R.drawable.common_green_bg));            } else {                loginBtn.setClickable(false);                loginBtn.setBackground(activity.getResources().getDrawable(R.drawable.common_grey_bg));            }        }    });

主要方法是使用Observable.combineLatest(),将多个Observable合并起来。

更多相关文章

  1. 修改android studio 新建项目的build.gradle的仓库源
  2. Android 后台保活,这里有你需要的所有姿势。2019,最新版本。
  3. Android 实用开源项目集合 持续更新
  4. GitHub 优秀的 Android 开源项目(值得研究)
  5. Android Studio 3.1.1新版本 修改 compileSdkVersion sdk版本的
  6. Android的一些开源项目集锦 以备以后研究
  7. Android中必须学习的八大开源项目
  8. 网丁:新项目技术知识点
  9. android studio 3.1.1 创建项目编译不过的问题解决

随机推荐

  1. android 9.0 startService启动Servcie的
  2. android获取手机信息以及服务商信息
  3. Mono for Android(安卓)显示远程图片
  4. android studio 2.2 ndk jni 开发 调试 h
  5. android Activity之间传递对象
  6. MTK Android(安卓)Driver :battery
  7. Android短信----接收流程---框架层(Framew
  8. 改变Android(安卓)对话框位置及边框
  9. Android(安卓)--- 图片的特效处理
  10. 内存管理Memory Management in Android