Android Как правильно получить значение с коммутатора?
Я создаю приложение для Android
которое использует Switch.
Я пытаюсь выслушать изменения и получить значение при изменении.
У меня есть два вопроса при использовании переключателей:
- Какой
action listener
действия я использую? - Как я могу получить значение
switch
?
Ответы
Ответ 1
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
}
}
Подсказка: isChecked
- это новое значение переключателя [ true
или false
], а не старое.
Ответ 2
Так как он простирается от CompoundButton
(docs), вы можете использовать setOnCheckedChangeListener()
, чтобы прослушать изменения; используйте isChecked()
, чтобы получить текущее состояние кнопки.
Ответ 3
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..
}
}
});
я надеюсь это решит вашу проблему