Android 小項目之--猜名字有獎!RadionButton 和RadionGroup應用(附源碼)

it2022-05-09  28

  有想過友Android的小屏幕上把asp.net 的RadionButtonList搬進來用嗎?答案是肯定的,Android 的Tool工具提供了一個RadioGroup控件,可將各大自不同的RadioButton設限于同一個Radio按鈕組,這樣子就可以做到單選的效果了,那要怎么樣用呢?先看截圖:

我們要做的事是:當用戶猜題或者選擇一個特定某個選項時,我們將在後臺判斷用戶是否選中,如果選中者相應的做出處理,具體處理看各自項目的需求,代碼片段一:

 

代码 mButton.setOnClickListener( new  OnClickListener() {                        @Override             public   void  onClick(View v) {                 //  TODO Auto-generated method stub                  if (mRadioButton1.isChecked())                {                    mRadioButton1.setChecked( false );                }                 if (mRadioButton2.isChecked())                {                    mRadioButton2.setChecked( false );                }                 if (mRadioButton3.isChecked())                {                    mRadioButton3.setChecked( false );                }                 if (mRadioButton4.isChecked())                {                    mRadioButton4.setChecked( false );                }                            }        });

 

 

按鈕事件,重置選中按鈕為未選中狀態。

代碼片段二:

 

代码  list = new  OnCheckedChangeListener() {                        @Override             public   void  onCheckedChanged(RadioGroup group,  int  checkedId) {                 //  TODO Auto-generated method stub                 RadioButton btn = (RadioButton)findViewById(checkedId);                 if (btn.isChecked())                {                      switch  (checkedId) {                         case  R.id.RadioButton01:                                                                                    Show( " 回答錯誤! " );                                                         break ;                         case  R.id.RadioButton02:                                                            Show( " 回答錯誤! " );                                                         break ;                         case  R.id.RadioButton03:                                                            Show( " 回答正確,獎勵你100分 " );                                                         break ;                         case  R.id.RadioButton04:                                                             Show( " 回答錯誤! " );                                                          break ;                                                     }                           }                        }        };                 mGroup.setOnCheckedChangeListener(list);    }

 

 

步驟分析:一,通過checkid判斷用戶選中哪一個按鈕再判斷,如果狀態為ischeck()則做出相應處理

二,通過checkid做出彈出處理效果

完整代碼如下:

 

代码 package  cn.terry; import  android.app.Activity; import  android.app.AlertDialog; import  android.os.Bundle; import  android.view.View; import  android.view.View.OnClickListener; import  android.widget. * import  android.widget.RadioGroup.OnCheckedChangeListener; public   class  TestRadioButton  extends  Activity {     private  RadioGroup mGroup;     private  Button mButton;     private  RadioButton mRadioButton1;     private  RadioButton mRadioButton2;     private  RadioButton mRadioButton3;     private  RadioButton mRadioButton4;      private  OnCheckedChangeListener list;         /**  Called when the activity is first created.  */     @Override     public   void  onCreate(Bundle savedInstanceState) {         super .onCreate(savedInstanceState);        setContentView(R.layout.main);        mGroup = (RadioGroup)findViewById(R.id.group);        mButton = (Button)findViewById(R.id.Button1);        mRadioButton1 = (RadioButton)findViewById(R.id.RadioButton01);        mRadioButton2 = (RadioButton)findViewById(R.id.RadioButton02);        mRadioButton3 = (RadioButton)findViewById(R.id.RadioButton03);        mRadioButton4 = (RadioButton)findViewById(R.id.RadioButton04);               mButton.setOnClickListener( new  OnClickListener() {                        @Override             public   void  onClick(View v) {                 //  TODO Auto-generated method stub                  if (mRadioButton1.isChecked())                {                    mRadioButton1.setChecked( false );                }                 if (mRadioButton2.isChecked())                {                    mRadioButton2.setChecked( false );                }                 if (mRadioButton3.isChecked())                {                    mRadioButton3.setChecked( false );                }                 if (mRadioButton4.isChecked())                {                    mRadioButton4.setChecked( false );                }                            }        });               list = new  OnCheckedChangeListener() {                        @Override             public   void  onCheckedChanged(RadioGroup group,  int  checkedId) {                 //  TODO Auto-generated method stub                 RadioButton btn = (RadioButton)findViewById(checkedId);                 if (btn.isChecked())                {                      switch  (checkedId) {                         case  R.id.RadioButton01:                                                                                    Show( " 回答錯誤! " );                                                         break ;                         case  R.id.RadioButton02:                                                            Show( " 回答錯誤! " );                                                         break ;                         case  R.id.RadioButton03:                                                            Show( " 回答正確,獎勵你100分 " );                                                         break ;                         case  R.id.RadioButton04:                                                             Show( " 回答錯誤! " );                                                          break ;                                                     }                           }                        }        };                 mGroup.setOnCheckedChangeListener(list);    }         public   void  Show(String msg)    {         new  AlertDialog.Builder(TestRadioButton. this )        .setTitle( " 提示 " )        .setMessage(msg)        .setPositiveButton( " 確定 " null ).create().show();    }                        }

 

源碼下載:/Files/TerryBlog/TestRadioButton.rar

 

如果你有什麽不懂的可以:QQ285735942  或 Email:terryyhl@gmail.com  希望能幫得到您。

转载于:https://www.cnblogs.com/TerryBlog/archive/2010/05/28/1746281.html


最新回复(0)