widgets之switch和ToggleButton

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();
					
				}
			}
		});
这两个开关组件的功能是一样的只不过只是展现的形式不同而已。


你可能感兴趣的:(widgets之switch和ToggleButton)