toggle button是用来切换两个状态的一个控件。
你可以在layout中添加ToggleButton对象。Android4.0(API level 14)介绍了另外一种toggle button, 叫switch,提供了一种滑动操作。
Toggle Buttons Switches
ToggleButton 和Switch控件都是CompoundButton的子类,函数都是一样的,两者的使用基本相同。
响应点击事件
当用户选择了ToggleButton和Switch,对象会收到一个点击事件
你可以在layout中通过 <ToggleButton>
和 <Switch>添加
android:onClick属性
这个属性的值就是响应函数的函数性,你必须在加载layout的Activity中实现这个函数,例如
这是在ToggleButton中添加的 android:onClick
属性
<ToggleButton
android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Vibrate on"
android:textOff="Vibrate off"
android:onClick="onToggleClicked"/>
在Activity中响应函数定义
public void onToggleClicked(View view) {
// Is the toggle on?
boolean on = ((ToggleButton) view).isChecked();
if (on) {
// Enable vibrate
} else {
// Disable vibrate
}
}
1.必须是public
2.返回值是void
3.只能有一个参数,而且是View
Tip:你可以使用 setChecked(boolean)
or toggle()
方法来修改对象的状态
使用OnCheckedChangeListener
你不但可以在xml layout中定义点击事件的响应,你还可以通过代码编程去实现。如果你的ToggleButton和Switch是在运行中实例化的,那血你就需要通过代码添加一个点击事件回调。
你可以创建一个CompoundButton.OnCheckedChangeListener
对象,然后通过调用setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener)方法赋值,例如
ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// The toggle is enabled
} else {
// The toggle is disabled
}
}
});