Sdílet prostřednictvím


Přepínač Xamarin.Android

Widget Switch (viz níže) umožňuje uživateli přepínat mezi dvěma stavy, jako je ZAPNUTO nebo VYPNUTO. Výchozí Switch hodnota je VYPNUTÁ. Widget je zobrazen níže ve stavu ZAPNUTO i VYPNUTO:

Snímky obrazovky s widgetem Switch ve stavu VYPNUTO a ZAPNUTO

Vytvoření přepínače

Pokud chcete vytvořit přepínač, jednoduše deklarujte Switch element v jazyce XML následujícím způsobem:

<Switch android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

Vytvoří se základní přepínač, jak je znázorněno níže:

Snímek obrazovky ukázkové aplikace zobrazující přepínač ve stavu VYPNUTO

Změna výchozích hodnot

Text, který ovládací prvek zobrazuje pro stavy ZAPNUTO a VYPNUTO, a výchozí hodnota jsou konfigurovatelné. Chcete-li například nastavit přepínač jako výchozí pro zapnuto a číst NE/ANO místo vypnuto/ZAPNUTO, můžeme nastavit checked, textOna textOff atributy v následujícím XML.

<Switch android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:textOn="YES"
        android:textOff="NO" />

Zadání názvu

Widget Switch také podporuje zahrnutí textového popisku nastavením atributu text následujícím způsobem:

<Switch android:text="Is Xamarin.Android great?"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:textOn="YES"
        android:textOff="NO" />

Tento kód vytvoří následující snímek obrazovky za běhu:

Snímek obrazovky ukázkové aplikace s textem vodorovně před widgetem Switch

SwitchKdyž se hodnota změní, vyvolá CheckedChange událost. Například v následujícím kódu zachytáváme tuto událost a prezentujeme Toast widget se zprávou na isChecked základě hodnoty Switch, která se předá obslužné rutině události jako součást argumentu CompoundButton.CheckedChangeEventArg .

Switch s = FindViewById<Switch> (Resource.Id.monitored_switch);
           
s.CheckedChange += delegate(object sender, CompoundButton.CheckedChangeEventArgs e) {
    var toast = Toast.MakeText (this, "Your answer is " +
        (e.IsChecked ?  "correct" : "incorrect"), ToastLength.Short);
    toast.Show ();
};