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 <RadioButton
17 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添加监听事件
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 @Override
21 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
22 // TODO 自动生成的方法存根
23 setBulbState(isChecked);
24 }
25 });
26 radio.setOnCheckedChangeListener(new OnCheckedChangeListener() {
27
28 @Override
29 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 }
这里我们通过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 @Override
10 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 }
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 <TextView
12 android:id="@+id/text1"
13 android:layout_width="wrap_content"
14 android:layout_height="wrap_content"
15 android:text="@string/hello_world" />
16
17 <Button
18 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 <ImageButton
27 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 <ToggleButton
36 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 <ImageView
46 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 <CheckBox
53 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 <RadioGroup
61 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 <RadioButton
68 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 <RadioButton
76 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>