Подтвердить что ты не робот

Android Как правильно получить значение с коммутатора?

Я создаю приложение для Android которое использует Switch.
Я пытаюсь выслушать изменения и получить значение при изменении.
У меня есть два вопроса при использовании переключателей:

  1. Какой action listener действия я использую?
  2. Как я могу получить значение switch?
4b9b3361

Ответ 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..
                    }
                }
            });

я надеюсь это решит вашу проблему