Je crée une application Android
qui utilise un Switch .
J'essaie d'écouter les changements et d'obtenir la valeur lorsqu'ils sont modifiés.
J'ai deux questions lorsque j'utilise des commutateurs:
action listener
dois-je utiliser?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
}
}
Astuce: isChecked
est la nouvelle valeur de commutateur [true
ou false
] pas l'ancienne.
Puisqu'il s'étend de CompoundButton
( docs ), vous pouvez utiliser setOnCheckedChangeListener()
pour écouter les changements; utilisez isChecked()
pour obtenir l'état actuel du bouton.
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..
}
}
});
j'espère que cela résoudra votre problème