首页 > 代码库 > RadioButton、CheckBox与ToggleButton

RadioButton、CheckBox与ToggleButton

1.RadioButton

RadioButton被称作为单选框,通常都是以组的形式出现,可以在一组控件中选择一个。

RadioButton的使用首先需要加入<RadioGroup/>,在这个组中,我们进行单选按钮的声明。

 1   <RadioGroup 2         android:id="@+id/radioGroup" 3         android:layout_width="wrap_content" 4         android:layout_height="wrap_content" 5         android:layout_x="51dp" 6         android:layout_y="182dp" > 7  8         <RadioButton 9             android:id="@+id/radioButton2"10             android:layout_width="wrap_content"11             android:layout_height="wrap_content"12             android:layout_x="172dp"13             android:layout_y="181dp"14             android:text="关灯" />15 16         <RadioButton17             android:id="@+id/radioButton1"18             android:layout_width="wrap_content"19             android:layout_height="wrap_content"20             android:layout_x="36dp"21             android:layout_y="201dp"22             android:text="开灯" />23     </RadioGroup>
RadioButton

这里我们定义了两个RadioButton按钮,用来控制图片的切换,我们需要为RadioButton添加监听事件

 1 Button myButton; 2     ImageButton myImg; 3     TextView textView; 4     ToggleButton myToggle; 5     ImageView img; 6     CheckBox myCheck; 7  8     @Override 9     protected void onCreate(Bundle savedInstanceState) {10         super.onCreate(savedInstanceState);11         setContentView(R.layout.activity_main);12         myButton=(Button)findViewById(R.id.button1);13         textView=(TextView)findViewById(R.id.text1);14         myToggle=(ToggleButton)findViewById(R.id.toggleButton1);15  myCheck=(CheckBox)findViewById(R.id.checkBox1);16     RadioButton radio=(RadioButton)findViewById(R.id.radioButton2);17     RadioButton radio1=(RadioButton)findViewById(R.id.radioButton1);18     radio1.setOnCheckedChangeListener(new OnCheckedChangeListener() {19         20         @Override21         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {22             // TODO 自动生成的方法存根23             setBulbState(isChecked);24         }25     });26     radio.setOnCheckedChangeListener(new OnCheckedChangeListener() {27         28         @Override29         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {30             // TODO 自动生成的方法存根31             setBulbState(isChecked);32         }33     });34       35     }36     private void setBulbState(boolean isChecked) {37         // TODO 自动生成的方法存根38            img=(ImageView)findViewById(R.id.imageView1);39         40             img.setImageResource((isChecked)?R.drawable.bulbon:R.drawable.buldoff);41         42         43          RadioButton radio1=(RadioButton)findViewById(R.id.radioButton1);44          radio1=(RadioButton)findViewById(R.id.radioButton1);45          radio1.setChecked(isChecked);46     radio1=(RadioButton)findViewById(R.id.radioButton2);47          radio1.setChecked(!isChecked);48     49     }
RadioButton监听

这里我们通过findViewById()来获取控件,并实现了控件的监听 setonCheckedChangeListener;

2.CheckBox

CheckBox控件被称为复选框,我们通过判断控件的选中状态,控制图片的切换。在资源文件中添加两个String对象,分别对应checkbox的选中状态,checkbox可以在不同的状态显示不同的Text。

 protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);       myCheck=(CheckBox)findViewById(R.id.checkBox1);            myCheck.setOnCheckedChangeListener(new OnCheckedChangeListener(){            @Override            public void onCheckedChanged(CompoundButton buttonView,                    boolean isChecked) {                // TODO 自动生成的方法存根                setBulbState(isChecked);            }});    }    private void setBulbState(boolean isChecked) {        // TODO 自动生成的方法存根           img=(ImageView)findViewById(R.id.imageView1);                    img.setImageResource((isChecked)?R.drawable.bulbon:R.drawable.buldoff);                         myCheck=(CheckBox)findViewById(R.id.checkBox1);         myCheck.setText((isChecked)?R.string.offn:R.string.onn);         myCheck.setChecked(isChecked);    }

3.ToogleButton

ToogleButton俗称开关控件,可以分别设置它的EditTextOn和EditTextOff两个状态下的文字,对于该控件也需要添加监听的事件,获取控件的状态。

 1  protected void onCreate(Bundle savedInstanceState) { 2         super.onCreate(savedInstanceState); 3         setContentView(R.layout.activity_main); 4         5         myToggle=(ToggleButton)findViewById(R.id.toggleButton1); 6   7         myToggle.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 8  9             @Override10             public void onCheckedChanged(CompoundButton buttonView,11                     boolean isChecked) {12                 // TODO 自动生成的方法存根13                 setBulbState(isChecked);14             }15 16 17     }18     private void setBulbState(boolean isChecked) {19         // TODO 自动生成的方法存根20            img=(ImageView)findViewById(R.id.imageView1);21         22             img.setImageResource((isChecked)?R.drawable.bulbon:R.drawable.buldoff);23         24          myToggle=(ToggleButton)findViewById(R.id.toggleButton1);25          myToggle.setChecked(isChecked);26     }
ToogleButton控件

4.Xml文件

Xml前台设置文件如下:

 1 <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 2     xmlns:tools="http://schemas.android.com/tools" 3     android:layout_width="match_parent" 4     android:layout_height="match_parent" 5     android:paddingBottom="@dimen/activity_vertical_margin" 6     android:paddingLeft="@dimen/activity_horizontal_margin" 7     android:paddingRight="@dimen/activity_horizontal_margin" 8     android:paddingTop="@dimen/activity_vertical_margin" 9     tools:context=".MainActivity" >10 11     <TextView12         android:id="@+id/text1"13         android:layout_width="wrap_content"14         android:layout_height="wrap_content"15         android:text="@string/hello_world" />16 17     <Button18         android:id="@+id/button1"19         android:layout_width="180dp"20         android:layout_height="64dp"21         android:layout_x="45dp"22         android:layout_y="269dp"23         android:background="@drawable/btn01"24         android:text="Button" />25 26     <ImageButton27         android:id="@+id/imageButton1"28         android:layout_width="60dp"29         android:layout_height="wrap_content"30         android:layout_x="139dp"31         android:layout_y="399dp"32         android:background="@drawable/easyicon_net_24"33         android:src="@drawable/imgbutton" />34 35     <ToggleButton36         android:id="@+id/toggleButton1"37         android:layout_width="wrap_content"38         android:layout_height="wrap_content"39         android:layout_x="145dp"40         android:layout_y="211dp"41         android:text="ToggleButton"42         android:textOff="开灯"43         android:textOn="关灯" />44 45     <ImageView46         android:id="@+id/imageView1"47         android:layout_width="77dp"48         android:layout_height="77dp"49         android:layout_x="30dp"50         android:layout_y="84dp"51         android:src="@drawable/buldoff" />52     <CheckBox53         android:id="@+id/checkBox1"54         android:layout_width="wrap_content"55         android:layout_height="wrap_content"56         android:layout_x="164dp"57         android:layout_y="115dp"58         android:text="@string/onn" />59 60     <RadioGroup61         android:id="@+id/radioGroup"62         android:layout_width="wrap_content"63         android:layout_height="wrap_content"64         android:layout_x="51dp"65         android:layout_y="182dp" >66 67         <RadioButton68             android:id="@+id/radioButton2"69             android:layout_width="wrap_content"70             android:layout_height="wrap_content"71             android:layout_x="172dp"72             android:layout_y="181dp"73             android:text="关灯" />74 75         <RadioButton76             android:id="@+id/radioButton1"77             android:layout_width="wrap_content"78             android:layout_height="wrap_content"79             android:layout_x="36dp"80             android:layout_y="201dp"81             android:text="开灯" />82     </RadioGroup>83 84 </AbsoluteLayout>
Xml文件