ToggleButton

在本部分中,你将使用 ToggleButton 小组件创建专门用于在两种状态之间切换的按钮。 如果有两个相互排斥的简单状态(例如“开”和“关”),该小组件是单选按钮的极佳替代方式。 Android 4.0(API 级别 14)引入了一种名为 Switch 的切换按钮替代方式。

左侧的一对图像是 ToggleButton 的示例,右侧的一对图像是 Switch 的示例

Examples of Switches and ToggleButtons in both on and off states

应用程序使用哪种控件是样式问题。 这两个小组件在功能上是等效的。

打开 Resources/layout/Main.axml 文件并添加 ToggleButton 元素(在 LinearLayout 内):

要在状态发生变化时执行某些操作,请将以下代码添加到 OnCreate() 方法的末尾:

ToggleButton togglebutton = FindViewById<ToggleButton>(Resource.Id.togglebutton);

togglebutton.Click += (o, e) => {
    // Perform action on clicks
    if (togglebutton.Checked)
        Toast.MakeText(this, "Checked", ToastLength.Short).Show ();
    else
        Toast.MakeText(this, "Not checked", ToastLength.Short).Show ();
};

这将从布局中捕获 ToggleButton 元素,并处理 Click 事件,该事件定义了单击按钮时要执行的操作。 在此示例中,该方法会检查按钮的新状态,然后显示一条 Toast 消息,表明当前状态。

请注意,ToggleButton 自行处理选中与未选中状态之间的变化,所以你只需查询其当前状态。

运行该应用程序。

提示

如果需要自行更改状态(例如加载已保存的 CheckBoxPreference),请使用 Checked 属性资源库或 Toggle() 方法。