Android Jak poprawnie pobrać wartość z przełącznika?


Tworzę aplikację
Android
, która używa

przełącznik
http://developer.android.com/r ... .html
.

Staram się nasłuchiwać zmian i rozumieć, kiedy się zmieniają.

Mam dwa pytania podczas używania przełączników:
  • Jakiego
    detektora akcji
    używam
  • Jak uzyskać wartość
    switch

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

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
}
}

Wskazówka:
isChecked
to nowa wartość przycisku opcji [
true
lub
false
], a nie stara.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak wynika z
CompoundButton
(

docs
http://developer.android.com/r ... n.html), możesz użyć
setOnCheckedChangeListener()
http://developer.android.com/r ... %2529
nasłuchiwać zmian; użyj
isChecked ()
, aby uzyskać aktualny stan przycisku.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

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..
}
}
});

mam nadzieję, że to rozwiąże twój problem
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dodałem to w kotlin roku
switchImage.setOnCheckedChangeListener { compoundButton: CompoundButton, b: Boolean ->
if (b)// Do something
else// Do something
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


Kotlin, ale w bardziej czytelnym stylu Java
>
videoLoopSwitch.setOnCheckedChangeListener(object : CompoundButton.OnCheckedChangeListener{
override fun onCheckedChanged(switch: CompoundButton?, isChecked: Boolean) {
videoPlayer?.apply {
setLooping(isChecked)
}
}
})

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się