Android How do I correctly get the value from a Switch? Android How do I correctly get the value from a Switch? android android

Android How do I correctly get the value from a Switch?


Switch s = (Switch) findViewById(R.id.SwitchID);if (s != null) {    s.setOnCheckedChangeListener(this);}/* ... */public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {    Toast.makeText(this, "The Switch is " + (isChecked ? "on" : "off"),                   Toast.LENGTH_SHORT).show();    if(isChecked) {        //do stuff when Switch is ON    } else {        //do stuff when Switch if OFF    }}

Hint: isChecked is the new switch value [true or false] not the old one.


Since it extends from CompoundButton (docs), you can use setOnCheckedChangeListener() to listen for changes; use isChecked() to get the current state of the button.


Switch switch = (Switch) findViewById(R.id.Switch2);switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                    if (isChecked) {                        ...switch on..                    } else {                       ...switch off..                    }                }            });

i hope this will solve your problem