实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使用.RadioGroup是单选组合框,可以容纳多个RadioButton的容器.在没有RadioGroup的情况下,RadioButton可以全部都选中;当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个。并用setOnCheckedChangeListener来对单选按钮进行监听
01 RadioGroup相关属性:
02
03 RadioGroup.getCheckedRadioButtonId ();--获取选中按钮的id
04
05 RadioGroup.clearCheck ();//---清除选中状态
06
07 RadioGroup.check (int id);//---通过参入选项id来设置该选项为选中状态如果传递-1作为指定的选择标识符来清除单选按钮组的勾选状态,相当于调用clearCheck()操作
08
09 setOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener listener); //--一个当该单选按钮组中的单选按钮勾选状态发生改变时所要调用的回调函数
10
11 addView (View child, int index, ViewGroup.LayoutParams params);//---使用指定的布局参数添加一个子视图
12
13 //参数 child 所要添加的子视图 index 将要添加子视图的位置 params 所要添加的子视图的布局参数
14
15 RadioButton.getText();//获取单选框的值
16
17 //此外,RadioButton的checked属性设置为true,代码里调用RadioButton的check(id)方法,不会触发onCheckedChanged事件
RadioButton和RadioGroup的关系:
1、RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器
2、每个RadioGroup中的RadioButton同时只能有一个被选中
3、不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中
4、大部分场合下,一个RadioGroup中至少有2个RadioButton
5、大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置
看案例:
1.定义布局文件:
01
02
04 android:layout_height="match_parent" >
05
07 android:layout_width="match_parent"
08 android:layout_height="wrap_content"
09 android:layout_marginRight="5dp" >
10
11
13 android:layout_width="228px"
14 android:layout_height="wrap_content"
15 android:text="我选择的是...?"
16 android:textSize="30sp"
17 />
18
19
21 android:layout_width="match_parent"
22 android:layout_height="match_parent"
23 >
24
26 android:layout_width="match_parent"
27 android:layout_height="match_parent"
28 android:text="Boy"
29 />
30
32 android:layout_width="match_parent"
33 android:layout_height="match_parent"
34 android:text="Girl"
35 />
36
37
38
53
2.java代码文件
01 package com.dream.app.start.first.radiobutton;
02
03 import com.dream.app.start.R;
04 import com.dream.app.start.R.id;
05 import com.dream.app.start.R.layout;
06 import com.dream.app.start.three.utils.PublicClass;
07
08 import android.app.Activity;
09 import android.os.Bundle;
10 import android.view.View;
11 import android.view.View.OnClickListener;
12 import android.view.ViewGroup.LayoutParams;
13 import android.widget.Button;
14 import android.widget.RadioButton;
15 import android.widget.RadioGroup;
16 import android.widget.RadioGroup.OnCheckedChangeListener;
17 import android.widget.TextView;
18 import android.widget.ToggleButton;
19
20 public class RadioButtonDemo extends PublicClass {
21 private TextView textView=null;
22 private RadioGroup radioGroup=null;
23 private RadioButton radioButton_boy,radioButton_girl;
24 private Button radio_clear,child;
25 /* (non-Javadoc)
26 * @see android.app.Activity#onCreate(android.os.Bundle)
27 */
28 @Override
29 protected void onCreate(Bundle savedInstanceState) {
30 // TODO Auto-generated method stub
31 super.onCreate(savedInstanceState);
32
33 setContentView(R.layout.layout_frist_radiobuton);
34
35 textView = (TextView)findViewById(R.id.radiogroup_info_id);
36
37 //radioGroup
38 radioGroup=(RadioGroup)findViewById(R.id.radioGroup_sex_id);
39 radioButton_boy=(RadioButton)findViewById(R.id.boy_id);
40 radioButton_girl=(RadioButton)findViewById(R.id.girl_id);
41 child=(Button)findViewById(R.id.radio_add_child);
42 //---
43 radioGroup.setOnCheckedChangeListener(listen);
44 radio_clear=(Button)findViewById(R.id.radio_clear);
45 radio_clear.setOnClickListener(onClick);
46 child.setOnClickListener(onClick);
47 }
48
49 private OnCheckedChangeListener listen=new OnCheckedChangeListener() {
50
51 @Override
52 public void onCheckedChanged(RadioGroup group, int checkedId) {
53 int id= group.getCheckedRadioButtonId();
54 switch (group.getCheckedRadioButtonId()) {
55 case R.id.girl_id:
56 textView.setText("我选择的是:"+radioButton_girl.getText());
57 break;
58 case R.id.boy_id:
59 textView.setText("我选择的是:"+radioButton_boy.getText());
60 break;
61 default:
62 textView.setText("我选择的是:新增");
63 break;
64 }
65
66 }
67 };
68 private OnClickListener onClick=new OnClickListener() {
69
70 @Override
71 public void onClick(View v) {
72 radio_clear=(Button)v;
73 switch (radio_clear.getId()) {
74 case R.id.radio_clear:
75 radioGroup.check(-1);//清除选项
76 // radioGroup.clearCheck(); //清除选项
77 textView.setText("我选择的是...?");
78 break;
79 case R.id.radio_add_child:
80 //新增子
81 RadioButton newRadio =new RadioButton(getApplicationContext());
82 newRadio.setText("新增");
83 radioGroup.addView(newRadio, radioGroup.getChildCount());
84 break;
85 //
86
87 default:
88 break;
89 }
90 }
91 };
哥们,问题解决了啊、吗?我今天也遇到这个问题了,刚刚解决,如果需要的话,给我留言