Xamarin.Android Switch
El widget Switch
(que se muestra a continuación) permite a los usuarios alternar entre dos estados, como ACTIVADO o DESACTIVADO. El valor predeterminado de Switch
es DESACTIVADO. El widget se muestra a continuación en sus estados ACTIVADO y DESACTIVADO:
Creación de modificadores
Para crear un modificador, no tiene más que declarar un elemento Switch
en XML de la siguiente manera:
<Switch android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Así se crea un modificador básico como se muestra a continuación:
Cambio de los valores predeterminados
Tanto el texto que muestra el control para los estados ACTIVADO y DESACTIVADO como el valor predeterminado son configurables. Por ejemplo, para que el valor predeterminado de Switch sea ACTIVADO y que aparezcan NO/SÍ, en lugar de ACTIVADO/DESACTIVADO, podemos establecer los atributos checked
, textOn
y textOff
en el siguiente XML.
<Switch android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:textOn="YES"
android:textOff="NO" />
Proporcionar un icono
El widget Switch
también admite la inclusión de una etiqueta de texto estableciendo el atributo text
de la siguiente manera:
<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" />
Este marcado genera la siguiente captura de pantalla en tiempo de ejecución:
Cuando cambia un valor de Switch
, genera un evento CheckedChange
.
Por ejemplo, en el siguiente código capturamos este evento y presentamos un widget Toast
con un mensaje basado en el valor isChecked
de Switch
, que se pasa al controlador de eventos como parte del argumento de 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 ();
};