Freigeben über


Xamarin.Android Switch

Mit dem Switch Widget (siehe unten) kann ein Benutzer zwischen zwei Zuständen umschalten, z. B. EIN oder AUS. Der Switch Standardwert ist AUS. Das Widget wird unten in den Zuständen "EIN" und "OFF" angezeigt:

Screenshots eines Switch-Widgets in OFF- und EIN-Zustand

Erstellen eines Schalters

Um einen Switch zu erstellen, deklarieren Sie einfach ein Switch Element in XML wie folgt:

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

Dadurch wird wie unten dargestellt ein einfacher Switch erstellt:

Screenshot der Demo-App, die einen Schalter im OFF-Zustand anzeigt

Ändern von Standardwerten

Sowohl der Text, den das Steuerelement für den EIN- als auch den AUS-Zustand anzeigt, und der Standardwert kann konfiguriert werden. Um z. B. den Schalter standardmäßig auf EIN zu setzen und "NEIN/JA" anstelle von "AUS/EIN" zu lesen, können wir die checkedAttribute textOnund Attribute textOff im folgenden XML-Code festlegen.

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

Bereitstellen eines Titels

Das Switch Widget unterstützt auch das Einschließen einer Textbezeichnung, indem das text Attribut wie folgt festgelegt wird:

<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" />

Dieses Markup erzeugt zur Laufzeit den folgenden Screenshot:

Screenshot der Demo-App mit horizontal vor dem Switch-Widget

Wenn sich der SwitchWert eines Werts ändert, löst es ein CheckedChange Ereignis aus. Im folgenden Code erfassen wir z. B. dieses Ereignis und präsentieren ein Toast Widget mit einer Nachricht basierend auf dem isChecked Wert von Switch, der als Teil des CompoundButton.CheckedChangeEventArg Arguments an den Ereignishandler übergeben wird.

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