Android 对多个EditText监听
16lz
2021-01-23
@ 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合并起来。
更多相关文章
- 修改android studio 新建项目的build.gradle的仓库源
- Android 后台保活,这里有你需要的所有姿势。2019,最新版本。
- Android 实用开源项目集合 持续更新
- GitHub 优秀的 Android 开源项目(值得研究)
- Android Studio 3.1.1新版本 修改 compileSdkVersion sdk版本的
- Android的一些开源项目集锦 以备以后研究
- Android中必须学习的八大开源项目
- 网丁:新项目技术知识点
- android studio 3.1.1 创建项目编译不过的问题解决