Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - programmatically change the state of a switch without triggering OnCheckChanged listener


I'm looking for a method of programmatically changing the state of an Android Switch widget using switch.setChecked(true); without triggering OnCheckedChangedlistener.

My first thought was to swap it out for an OnClickListener but as this only registers clicks and you are able to not only click but also slide a Switch then it's not really fit for purpose as if the user was to slide the Switch from off to on then the Switch would actually do nothing as the user is not clicking...

If anyone's got a solution or a smart work around for this, that would be awesome

like image 492
Paul Alexander Avatar asked Sep 03 '14 10:09

Paul Alexander


1 Answers

Set the listener to null before calling setCheck() function, and enable it after that, such as the following:

switch.setOnCheckedChangeListener (null); switch.setChecked(true); switch.setOnCheckedChangeListener (this); 

Reference: Change Checkbox value without triggering onCheckChanged

like image 101
Mahmoud Ibrahim Avatar answered Sep 19 '22 19:09

Mahmoud Ibrahim