Android开发控件之CheckBox、RadioGroup、RadioButton

CheckBox、RadioGroup、RadioButton控件是在Android开发当中做选择的时候用到的控件,下面将逐一介绍这三个控件的用法
一、复选框CheckBox控件
1.两种状态
  选中状态和未选中状态
2.属性
  android:id=”@+id/checkbox” id属性
  android:layout_width=”wrap_content” 宽度属性
  android:layout_height=”wrapcontent” 高度属性
  android:checked=”false” 选中状态为true,未选中为false,默认false
  android:text=”男”复选框显示的文本内容
3.使用样例
a.布局文件activity_main.xml代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/lanqiu" />
</LinearLayout>

b.MainActivity java代码
public class MainActivity extends Activity {
	private CheckBox checkBox;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化CheckBox
        checkBox=(CheckBox) findViewById(R.id.checkBox1);
        //通过设置CheckBox的监听事件来判断CheckBox是不是被选中了
        checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				// 通过onCheckedChanged来监听当前的checkbox是否被选中
				if(isChecked){
					//获得checkbox的文本内容
					String text=checkBox.getText().toString();
					Log.i("tag",text);
				}
			}
		});
    }
}

c.方法总结
setOnCheckedChangeListener CheckBox的监听事件的方法,本例中用的是前面介绍的匿名内部类去实现的,当然也可以用其它两种方法去实现。
String text=checkBox.getText().toString();获取CheckBox中的文本内容。
d.运行结果
将程序不知道虚拟机上后,点击CheckBox,会在LogCat中打印CheckBox当中text属性的文本内容,即“篮球”。

二、RadioGroup和RadioButton
1.RadioButton:
         RadioButton和CheckBox的区别:
a.单个RadioButton在选中后,通过点击无法变为未选中

    单个CheckBox在选中后,通过点击可以变为未选中

b.一组RadioButton,只能同时选中一个

     一组CheckBox,能同时选中多个

c.RadioButton在大部分UI框架中默认都以圆形表示

     CheckBox在大部分UI框架中默认都以矩形表示

      RadioButton和RadioGroup的关系:

a.RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器

b.每个RadioGroup中的RadioButton同时只能有一个被选中

c.不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中

d.大部分场合下,一个RadioGroup中至少有2个RadioButton

e.大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置

2.RadioGroup:
RadioButton的一个集合,提供多选一的机制
3.属性:
android:orientation=”vertival” 垂直排布/”horizontal”水平排布
决定当前RadioGroup中RadioButton以什么形式排布
4.使用样例
a.布局文件activity_main.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <RadioGroup
        android:orientation="vertical"
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="@string/nan" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/nv" />

    </RadioGroup>

</LinearLayout>

b.MainActivity java代码
public class MainActivity extends ActionBarActivity implements OnCheckedChangeListener {
	private RadioGroup rg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rg=(RadioGroup) findViewById(R.id.radioGroup1);
        //实现监听事件
        rg.setOnCheckedChangeListener(this);
    }
	@Override
	public void onCheckedChanged(RadioGroup group, int checkId) {
		switch (checkId) {
		case R.id.radio0:
			Log.i("tag","选择了男");
			break;
		case R.id.radio1:
			Log.i("tag","选择了女");
			break;
		default:
			break;
		}	
	}
}

c.方法总结
setOnCheckedChangeListener RadioGroup的监听事件方法,本例是通过实现OnCheckedChangeListener 接口的方式来实现事件监听的。
onCheckedChanged方法中通过checkId去判断点击了哪个CheckButton。
d.运行结果
将程序不知道虚拟机上后,点击不同的RadioButton会在Logcat中打印相应的信息。

猜你喜欢

转载自leo5592368.iteye.com/blog/2124311