android 中单选和复选框监听操作

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

 1 package com.genwoxue.oncheckedchanged;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.widget.RadioGroup;
 6 import android.widget.RadioButton;
 7 import android.widget.RadioGroup.OnCheckedChangeListener;              //引入OnCheckedChangeListener事件相关包
 8 import android.widget.CheckBox;
 9 import android.widget.CompoundButton;
10 import android.widget.Toast;
11 
12 
13 public class MainActivity extends Activity {
14     private RadioGroup GenderGroup=null;
15     private RadioButton rbMale=null;
16     private RadioButton rbFemale=null;
17     private CheckBox cbFootBall=null;
18     private CheckBox cbBasketBall=null;
19     
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         setContentView(R.layout.activity_main);
24         
25         GenderGroup=(RadioGroup)super.findViewById(R.id.gender);
26         rbMale=(RadioButton)super.findViewById(R.id.male);
27         rbFemale=(RadioButton)super.findViewById(R.id.female);
28         cbFootBall=(CheckBox)super.findViewById(R.id.football);
29         cbBasketBall=(CheckBox)super.findViewById(R.id.basketball);
30         //在GenderGroup注册OnCheckedChangeListener事件
31                   GenderGroup.setOnCheckedChangeListener(new GenderOnCheckedChangeListener());
32                   //在cbFootBall注册OnCheckedChangeListener事件
33         cbFootBall.setOnCheckedChangeListener(new BootBallOnCheckedChangeListener());
34                   //在cbBasketBall注册OnCheckedChangeListener事件
35 
36         cbBasketBall.setOnCheckedChangeListener(new BasketBallOnCheckedChangeListener());
37     }
38     
39     private class GenderOnCheckedChangeListener implements OnCheckedChangeListener{
40         @Override
41         public void onCheckedChanged(RadioGroup group,int checkedId){
42             String sGender="";
43             if(rbFemale.getId()==checkedId){
44                 sGender=rbFemale.getText().toString();
45             }
46             if(rbMale.getId()==checkedId){
47                 sGender=rbMale.getText().toString();
48             }
49             Toast.makeText(getApplicationContext(), "您选择的性别是:"+sGender, Toast.LENGTH_LONG).show();
50         }
51         
52     }
53     
54     private class BootBallOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener{
55         @Override
56         public void onCheckedChanged(CompoundButton button, boolean isChecked){
57             String sFav="";
58             if(isChecked){
59                 sFav=cbFootBall.getText().toString();
60                 sFav=sFav+"选中!";
61             }
62             else
63                 sFav=sFav+"未迁中";
64             Toast.makeText(getApplicationContext(), "您选择的爱好是:"+sFav, Toast.LENGTH_LONG).show();
65         }
66     }
67     
68     private class BasketBallOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener{
69         @Override
70         public void onCheckedChanged(CompoundButton button,boolean isChecked){
71             String sFav="";
72             if(cbBasketBall.isChecked()){
73                 sFav=cbBasketBall.getText().toString();
74                 sFav=sFav+"选中!";
75             }
76             else
77                 sFav=sFav+"未迁中";
78             Toast.makeText(getApplicationContext(), "您选择的爱好是:"+sFav, Toast.LENGTH_LONG).show();
79         }
80     }
81     
82 }

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

  效果如下:

  

原文地址:https://www.cnblogs.com/lgphp/p/3824028.html