【问题标题】:RxBinding with RadioGroup and CheckBoxesRxBinding 与 RadioGroup 和 CheckBoxes
【发布时间】:2018-05-28 07:13:49
【问题描述】:

我已经在我的项目中用这样的黄油刀实现了 rxjava:

@BindView(R.id.login_et)
EditText mLoginField;

@BindView(R.id.password_et)
EditText mPassField;

@BindView(R.id.login_bt)
Button mLoginButton;

@BindDrawable(R.drawable.error)
Drawable mInvalidField;

@BindDrawable(R.drawable.check_green)
Drawable mValidField;

并像这样验证我的输入字段和按钮:

rx.Observable<CharSequence> loginObservable = RxTextView.textChanges(mLoginField);
    loginObservable.map(this::isValidLogin)
            .subscribe(isValid -> mLoginField.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, (isValid? mValidField : mInvalidField), null));

    rx.Observable<CharSequence> passwordObservable = RxTextView.textChanges(mPassField);
    passwordObservable.map(this::isValidPassword)
            .subscribe(isValid -> mPassField.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, (isValid ? mValidField : mInvalidField), null));

    rx.Observable<Boolean> combinedObservables = rx.Observable.combineLatest(loginObservable, passwordObservable, (o1, o2) -> isValidLogin(o1) && isValidPassword(o2));
    combinedObservables.subscribe(isColorChanged -> mLoginButton.setBackgroundColor(isColorChanged ? getResources().getColor(R.color.red): getResources().getColor(R.color.green)));

我的活动布局中有一个无线电组和三个微调器,我很困惑如何在无线电组和微调器上执行 RxBindings 以进行表单验证。

【问题讨论】:

    标签: android android-spinner rx-java2 radio-group


    【解决方案1】:

    我很困惑如何在 radiogroup 和 spinner 上执行 RxBindings

    这是你监听 CheckBox 变化的方式:

     RxCompoundButton.checkedChanges(checkbox)
                    .subscribe(new Consumer<Boolean>() {
                        @Override
                        public void accept(Boolean isChecked) throws Exception {
    
                        }
                    });
    

    这是您可以收听 Spinner 选择的方式: RxBindings For Spinner?

    【讨论】:

    • @Anand Rajput 如果有帮助请接受回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2017-05-16
    • 2019-03-06
    • 1970-01-01
    相关资源
    最近更新 更多