androidrx-javaandroid-switch

RxView with Android Switch


If for a button, the expression:

 yourButton.setOnclicklistener(new .....)

can be written with RxJava like:

RxView.clicks(yourButton).subscribe(....)

I was wondering if for an Android Switch the following expression can be written using RxJava

Usual version:

yourSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            }
        });

Lambda version:

yourSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {

        });

RxJava version ??????


Solution

  • You can use RxCompoundButton

    Example :

    RxCompoundButton.checkedChanges(your_switch)
                .subscribe(checked -> {
                    if (checked){
                        //some code
                    }else {
                        //some code
                    }
                });