RxBinding с RadioGroup и CheckBoxes

Я реализовал rxjava в своем проекте с помощью butterknife следующим образом:

@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 для радиогруппы и счетчика для проверки формы.

1 ответ

Я запутался, как сделать RxBindings на радиогруппу и спиннер

Вот как вы слушаете изменения CheckBox:

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

                    }
                });

Вот как вы можете прослушать Spinner selection: RxBindings For Spinner?

Надеюсь, это будет полезно.

Другие вопросы по тегам