1.switch是一种只有两种状态的控件如:
继承关系如下:java.lang.Object
↳Android.view.View
↳android.widget.TextView
↳android.widget.Button
↳android.widget.CompoundButton
↳android.widget.Switch
使用方法和其他控件差不多:
<Switch
android:id="@+id/switch01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff="关闭"
android:textOn="开启" />
监听器和checkbox和RadioButton一样也是CompoundButton.OnCheckedChangeListener(CompoundButton arg0, boolean arg1)
第一个参数不用多解释就是这个Switch控件,第二参数指的是现在处于哪一种状态,如果是true则处于textOn,false处于textOff。
sw.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
if(arg1){
Toast.makeText(MainActivity.this, "你选中了打开", 3333).show();
}else{
Toast.makeText(MainActivity.this, "你选关闭", 3333).show();
}
}
});
2.ToggleButton和Switch一样也是一个开关组件,也是只有两个状态量,效果如下:
注意开和关的区别,它也可以动态设置文字。如下:
<ToggleButton android:id="@+id/tgb"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:checked="true" android:textOn="@string/open" android:textOff="@string/close" />
监听器也和Switch一样如下:
tg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
if(arg1){
Toast.makeText(MainActivity.this, "打开", 3333).show();
}else{
Toast.makeText(MainActivity.this, "关闭", 3333).show();
}
}
});
这两个开关组件的功能是一样的只不过只是展现的形式不同而已。