Android UI 之ToggleButton使用

Android UI 之ToggleButton使用

ToggleButton 允许使用者在两种状态中选择一种以改变设置。我们可以在自己的应用程序中添加如下的 ToggleButton

ToggleButton

在Android 4.0(API LEVEL 14)为我们介绍了一种支持滑动操作的被叫做开关的ToggleButton—— Swtich

Switch

无论是 ToggleButton 还是 Switch 都是 CompoundButton 的子类,并且行为方式也一样。所以我们只需要知道其中的一种,便能够使用第二种。

在自己的应用程序中添加Toggle

当我们的应用程序需要 ToggleButton 的时候,我们可以通过在Layout文件中添加如下的代码:

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

这样,我们就可以在应用程序中添加一个 ToggleButton 。当然,如果你想要添加一个 Switch ,你只需要把代码中的 ToggleButton 换成 Switch 就可以了:

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

改变Togele上的文字

我们会发现,无论是 ToggleButton 还是 Switch ,上面显示的都是On或者Off,我们可以在 ToggelButton 中改变显示文字为‘开’和‘关’:

android:textOn="开"
android:textOff="关"

Switch 的操作方法也是一样。

设置状态

除了在初始化时,其他时候也有可能需要动态改变Toggle的状态,我们可以应用中调用 setChecked(boolean) 或者 toggle() 方法来改变Toggle当前的状态。

响应Toggle状态的改变

在我们使用使用Toggle的时候,我们需要响应用户改变状态的事件。首先,在Layout中填加如下代码:

android:onClick="onToggleClicked"

然后再实现onToggleClicked方法:

public void onToggleClicked(View view) {
    // Is the toggle on?
    boolean on = ((ToggleButton) view).isChecked();

    if (on) {
        // Enable vibrate
    } else {
        // Disable vibrate
    }
}

另一种响应状态改变的方法

我们通过为 ToggleButton 创建一个 OnCheckedChangeListener 并调用 setOnCheckedChangeListener 方法将它加入到 ToggleButton 中。具体方法如下:

首先在Layout中为 ToggleButton 添加一个ID:

android:id="@+id/toggle_button"

然后在Activity的OnCreate方法中添加如下代码:

// 得到一个ToggleButton对象
ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggle_button);
// 将之添加到ToggleButton中
toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // do something
        } else {
            // do something
        }
    }
});

你可能感兴趣的:(android,UI,ToggleButton)