第20章、OnCheckedChangeListener事件(从零开始学Android)

单选按钮RadioGroup、复选框CheckBox都有OnCheckedChangeListener事件,我们一起了解一下。

一、布局

  1、打开“res/layout/activity_main.xml”文件。



    
        
        
    

    
    

  2、界面如下:

  

 

二、OnCheckedChangeListener事件 

  打开“src/com.genwoxue.oncheckedchanged/MainActivity.java”文件。

  然后输入以下代码:  

package com.genwoxue.oncheckedchanged;

import android.os.Bundle;
import android.app.Activity;
import android.widget.RadioGroup;
import android.widget.RadioButton;
import android.widget.RadioGroup.OnCheckedChangeListener;              //引入OnCheckedChangeListener事件相关包
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;


public class MainActivity extends Activity {
	private RadioGroup GenderGroup=null;
	private RadioButton rbMale=null;
	private RadioButton rbFemale=null;
	private CheckBox cbFootBall=null;
	private CheckBox cbBasketBall=null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		GenderGroup=(RadioGroup)super.findViewById(R.id.gender);
		rbMale=(RadioButton)super.findViewById(R.id.male);
		rbFemale=(RadioButton)super.findViewById(R.id.female);
		cbFootBall=(CheckBox)super.findViewById(R.id.football);
		cbBasketBall=(CheckBox)super.findViewById(R.id.basketball);
		//在GenderGroup注册OnCheckedChangeListener事件
                  GenderGroup.setOnCheckedChangeListener(new GenderOnCheckedChangeListener());
                  //在cbFootBall注册OnCheckedChangeListener事件
		cbFootBall.setOnCheckedChangeListener(new BootBallOnCheckedChangeListener());
                  //在cbBasketBall注册OnCheckedChangeListener事件

		cbBasketBall.setOnCheckedChangeListener(new BasketBallOnCheckedChangeListener());
	}
	
	private class GenderOnCheckedChangeListener implements OnCheckedChangeListener{
		@Override
		public void onCheckedChanged(RadioGroup group,int checkedId){
			String sGender="";
			if(rbFemale.getId()==checkedId){
				sGender=rbFemale.getText().toString();
			}
			if(rbMale.getId()==checkedId){
				sGender=rbMale.getText().toString();
			}
			Toast.makeText(getApplicationContext(), "您选择的性别是:"+sGender, Toast.LENGTH_LONG).show();
		}
		
	}
	
	private class BootBallOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener{
		@Override
		public void onCheckedChanged(CompoundButton button, boolean isChecked){
			String sFav="";
			if(isChecked){
				sFav=cbFootBall.getText().toString();
				sFav=sFav+"选中!";
			}
			else
				sFav=sFav+"未迁中";
			Toast.makeText(getApplicationContext(), "您选择的爱好是:"+sFav, Toast.LENGTH_LONG).show();
		}
	}
	
	private class BasketBallOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener{
		@Override
		public void onCheckedChanged(CompoundButton button,boolean isChecked){
			String sFav="";
			if(cbBasketBall.isChecked()){
				sFav=cbBasketBall.getText().toString();
				sFav=sFav+"选中!";
			}
			else
				sFav=sFav+"未迁中";
			Toast.makeText(getApplicationContext(), "您选择的爱好是:"+sFav, Toast.LENGTH_LONG).show();
		}
	}
	
}

  尽管单选按钮和复选框都有OnCheckedChange事件,但注意二者区别。

  效果如下:

  

你可能感兴趣的:(Android,从零开始学Android)