Android初级教程小案例之单选框RadioGroup与复选框CheckBox

Posted 杨道龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android初级教程小案例之单选框RadioGroup与复选框CheckBox相关的知识,希望对你有一定的参考价值。

android里面的单选框和html中的其实是一样的效果。这里用到两个控件:CheckBox和RadioGroup。直接上代码:

radio.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
	android:id="@+id/textView1"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<RadioGroup
	android:id="@+id/genderGroup"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"
    >
    <RadioButton
    	android:id="@+id/femaleButton"
 	    android:layout_width="wrap_content" 
  	    android:layout_height="wrap_content" 
  	    android:text="@string/female"
  	    />
    <RadioButton
    	android:id="@+id/maleButton"
 	    android:layout_width="wrap_content" 
  	    android:layout_height="wrap_content" 
  	    android:text="@string/male"
  	    />
</RadioGroup>
<CheckBox
	android:id="@+id/swim"
 	android:layout_width="wrap_content" 
  	android:layout_height="wrap_content" 
  	android:text="@string/swim"
  	/>
<CheckBox
	android:id="@+id/run"
 	android:layout_width="wrap_content" 
  	android:layout_height="wrap_content" 
  	android:text="@string/run"
  	/>
<CheckBox
	android:id="@+id/read"
 	android:layout_width="wrap_content" 
  	android:layout_height="wrap_content" 
  	android:text="@string/read"
  	/>
</LinearLayout>


String.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Activity07!</string>
    <string name="app_name">activity07</string>
    <string name="male">男</string>
    <string name="female">女</string>
    <string name="swim">swim</string>
    <string name="run">run</string>
    <string name="read">read</string>
</resources>
RadioTest:

package mars.activity07;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class RadioTest extends Activity {
    /** Called when the activity is first created. */
	//对控件对象进行声明
	private RadioGroup genderGroup = null;
	private RadioButton femaleButton = null;
	private RadioButton maleButton = null;
	private CheckBox swimBox = null;
	private CheckBox runBox = null;
	private CheckBox readBox = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radio);
        //通过控件的ID来得到代表控件的对象
        genderGroup = (RadioGroup)findViewById(R.id.genderGroup);
        femaleButton = (RadioButton)findViewById(R.id.femaleButton);
        maleButton = (RadioButton)findViewById(R.id.maleButton);
        swimBox = (CheckBox)findViewById(R.id.swim);
        runBox = (CheckBox)findViewById(R.id.run);
        readBox = (CheckBox)findViewById(R.id.read);
        //为RadioGroup设置监听器,需要注意的是,这里的监听器和Button控件的监听器有所不同
        genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// TODO Auto-generated method stub
				if(femaleButton.getId() == checkedId){
					System.out.println("famale");
					Toast.makeText(RadioTest.this, "famle", Toast.LENGTH_SHORT).show();
				}
				else if(maleButton.getId() == checkedId)
				{
					System.out.println("male");
					Toast.makeText(RadioTest.this, "male", Toast.LENGTH_SHORT).show();
				}
			}
		});
        
        //为多选按钮添加监听器
        swimBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				// TODO Auto-generated method stub
				if(isChecked)//未选中到选中状态是执行这里:
				{
					System.out.println("swim is checked");
				}
				else//由选中状态到未选中状态时候执行这里:
				{
					System.out.println("swim is unchecked");
				}
			}
		});
        runBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				// TODO Auto-generated method stub
				if(isChecked)
				{
					System.out.println("run is checked");
				}
				else
				{
					System.out.println("run is unchecked");
				}
			}
		});
        readBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				// TODO Auto-generated method stub
				if(isChecked)
				{
					System.out.println("read is checked");
				}
				else
				{
					System.out.println("read is unchecked");
				}
			}
		});
    }
    
}


注册文件进行注册:

<application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".RadioTest"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

执行效果图:



以上是关于Android初级教程小案例之单选框RadioGroup与复选框CheckBox的主要内容,如果未能解决你的问题,请参考以下文章

夺命雷公狗-----React---25--小案例之react经典案例todos(单选框的修改)

Android基础入门教程——2.3.5.RadioButton(单选按钮)&Checkbox(复选框)

android开发之单选按钮

自定义单选框和复选框案例

android单选框和复选框(练习)

mix