Поделиться через


Коммутатор Xamarin.Android

Мини-приложение Switch (показанное ниже) позволяет пользователю переключаться между двумя состояниями, такими как ON или OFF. Значение Switch по умолчанию — OFF. Мини-приложение отображается ниже в состояниях ON и OFF:

Снимок экрана мини-приложения Switch в состояниях OFF и ON

Создание коммутатора

Чтобы создать коммутатор, просто объявите Switch элемент в XML следующим образом:

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

При этом создается базовый коммутатор, как показано ниже:

Снимок экрана: демонстрационное приложение, отображающее переключатель в состоянии OFF

Изменение значений по умолчанию

Текст, отображаемый элементом управления для состояний ON и OFF, и значение по умолчанию можно настроить. Например, чтобы включить параметр ON и прочитать no/YES вместо OFF/ON, можно задать checkedtextOnатрибуты и textOff атрибуты в следующем XML.

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

Предоставление заголовка

Мини-приложение Switch также поддерживает включение текстовой метки, задав text атрибут следующим образом:

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

Эта разметка создает следующий снимок экрана во время выполнения:

Снимок экрана демонстрационного приложения с текстом по горизонтали перед мини-приложением Switch

SwitchПри изменении значения возникает CheckedChange событие. Например, в следующем коде мы фиксируем это событие и представляем Toast мини-приложение с сообщением на isChecked основе значения Switch, которое передается обработчику событий в рамках аргумента 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 ();
};