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         <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按钮,用来控制图片的切换,我们需要为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     }
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             @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     }
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     <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>
Xml文件

 

你可能感兴趣的:(RadioButton)