Android - modifier par programme l'état d'un commutateur sans déclencher l'écouteur OnCheckChanged
Je suis à la recherche d'une méthode de programmation, en modifiant l'état d'un Android Switch widget à l'aide de switch.setChecked(true);
sans déclencher OnCheckedChangedlistener
.
Ma première pensée a été pour l'échanger pour un OnClickListener
mais comme ce n'enregistre les clics et vous êtes en mesure non seulement de clic mais aussi faire glisser un Interrupteur puis ce n'est pas vraiment adapté à son objet, comme si l'utilisateur était de faire glisser le Commutateur de off à on, l'Interrupteur serait effectivement de ne rien faire tant que l'utilisateur n'est pas en cliquant sur...
Si quelqu'un a une solution ou une smart travail autour de cela, ce serait génial
source d'informationauteur Paul Alexander
Vous devez vous connecter pour publier un commentaire.
Bien, juste avant de faire les choses dans le code avec le commutateur vous pouvez simplement annuler l'inscription de l'Auditeur, puis faire ce que vous devez, et de nouveau s'inscrire à l'auditeur.
Ensemble de l'auditeur à null avant d'appeler setCheck() fonction, et permettre par la suite, telles que les suivantes:
Référence: Changement de Case de valeur sans déclencher onCheckChanged
J'ai une solution et sa fonctionne très bien sur ma fin.
J'ai ajouté setOnTouchListener et setOnCheckedChangeListener sur mon interrupteur de contrôle, et ajouté le code suivant à résoudre mon problème.
De cette façon setOnCheckedChangeListener est appelé uniquement lorsque l'enregistrement changé arrive par l'intervention de l'homme par glisser, par clic, par le toucher.
Aussi n'oubliez pas d'ajouter votre chaîne valide tag ( not null ) lors de votre tentative de changement de vérifier l'état de l'interrupteur de contrôle.
comme :
Réutilisables façon est d'écrire une coutume Interrupteur ou SwitchCompat et remplacer le setOnCheckedListener.
L'élaboration de Mahmoud réponse
`