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
I added this in kotlin
switchImage.setOnCheckedChangeListener { compoundButton: CompoundButton, b: Boolean ->
if (b) // Do something
else // Do something
}