RadioButton和RadioGroup的关系:

   1、RadioButton表示单个圆形单选框。而RadioGroup是能够容纳多个RadioButton的容器;

    2、每一个RadioGroup中的RadioButton同一时候仅仅能有一个被选中;

    3、不同的RadioGroup中的RadioButton互不相干。即假设组A中有一个选中了,组B中依旧能够有一个被选中;

    4、一个RadioGroup中至少有2个RadioButton;

    5、大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置(默认选中方法android:checked="true" )。

      我们在代码中使用  setOnCheckedChangeListener 来对单选button进行监听。


代码演示样例:

XML文件:

<span ><?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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />  <RadioGroup android:id="@+id/radioGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical">  <RadioButton android:id="@+id/radioBtn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radioBtn1" android:textColor="#ffffff" /> <RadioButton android:id="@+id/radioBtn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radioBtn2" /> </RadioGroup> </LinearLayout> </span>

布局格式如图:


若是希望,文字在前单选框在后,仅仅要在main.xml布局文件里的<RadioButton/>增加

android:button="@null"

android:drawableRight="@android:drawable/btn_radio"就可以

效果及例如以下图显示:



string.xml

<span ><?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">单选button測试</string> <string name="hello">你的性别是</string> <string name="radioBtn1">男</string> <string name="radioBtn2">女</string> </resources> </span>


MainActivity.java


<span >package com.android.radiobutton;  

import android.app.Activity;  
import android.os.Bundle;  
import android.widget.RadioGroup;  
import android.widget.Toast;  
     
public class MainActivity extends Activity {  
          
    //声明RadioGroup  
    RadioGroup raGroup;  
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.main);  
              
       //通过findViewById获得RadioGroup对象  
       raGroup=(RadioGroup)findViewById(R.id.radioGroup);  

       // 加入事件监听器     
       raGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  
                  
           @Override 
           public void onCheckedChanged(RadioGroup group, int checkedId) {  
               // TODO Auto-generated method stub  
               if(checkedId==R.id.radioBtn1){                    
                  Toast.makeText(MainActivity.this, "你的性别是男", Toast.LENGTH_LONG).show();  
               }</span><pre name="code" class="java"><span >               else { 
                   Toast.makeText(MainActivity.this, "你的性别是女", Toast.LENGTH_LONG).show();  
               }  
           }  
        });         
    }  
} </span>




延伸:RadioButton和CheckBox的差别:

1、单个RadioButton在选中后。通过点击无法变为未选中

          单个CheckBox在选中后,通过点击能够变为未选中

    2、一组RadioButton,仅仅能同一时候选中一个

         一组CheckBox。能同一时候选中多个

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

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

详细代码演示样例:


main.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:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/hello"
       android:textSize="20sp"
       android:textStyle="bold"
       android:textColor="#FFFFFF" />
    
   <CheckBox
      android:id="@+id/checkbox1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/football"
      android:textSize="16sp" />
    
   <CheckBox
       android:id="@+id/checkbox2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/basketball"
       android:textSize="16sp" />
    
   <CheckBox
       android:id="@+id/checkbox3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/volleyball"
       android:textSize="16sp"/>
</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">你喜欢的运动是</string>
    <string name="app_name">复选button測试</string>
    <string name="football">足球</string>
    <string name="basketball">篮球</string>
    <string name="volleyball">排球</string>
</resources>



MainActivity.java


package com.android.checkbox;  
     
    import android.app.Activity;  
    import android.os.Bundle;  
    import android.widget.CheckBox;  
    import android.widget.CompoundButton;  
    import android.widget.Toast;  
    import android.widget.CompoundButton.OnCheckedChangeListener;  
     
    public class MainActivity extends Activity{  
        //声明复选按钮  
        private CheckBox cBox1;  
        private CheckBox cBox2;  
        private CheckBox cBox3;  
          
        @Override 
        public void onCreate(Bundle savedInstanceState){  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            //通过findViewById获得CheckBox对象  
            cBox1=(CheckBox)findViewById(R.id.checkbox1);  
            cBox2=(CheckBox)findViewById(R.id.checkbox2);  
            cBox3=(CheckBox)findViewById(R.id.checkbox3);  
     
            //注冊事件监听器  
            cBox1.setOnCheckedChangeListener(listener);  
            cBox2.setOnCheckedChangeListener(listener);  
            cBox3.setOnCheckedChangeListener(listener);  
     
        }  
        //响应事件  
        private OnCheckedChangeListener listener = new OnCheckedChangeListener(){  
            @Override 
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)  
            {  
                //cBox1被选中  
                if (buttonView.getId()==R.id.checkbox1){  
                    if (isChecked){  
                        Toast.makeText(MainActivity.this, "你喜欢足球", Toast.LENGTH_LONG).show();  
                    }  
                }  
                //cBox2被选中  
                else if (buttonView.getId()==R.id.checkbox2){  
                    if (isChecked){  
                        Toast.makeText(MainActivity.this, "你喜欢篮球", Toast.LENGTH_LONG).show();  
                    }  
                }  
                //cBox3被选中  
                else if (buttonView.getId()==R.id.checkbox3){  
                    if (isChecked){  
                        Toast.makeText(MainActivity.this, "你喜欢排球", Toast.LENGTH_LONG).show();  
                    }  
                }         
            }  
        };  
    }



效果图例如以下:




到此结束~~~







转载于:


RadioButton和RadioGroup的关系:

   1、RadioButton表示单个圆形单选框。而RadioGroup是能够容纳多个RadioButton的容器;

    2、每一个RadioGroup中的RadioButton同一时候仅仅能有一个被选中;

    3、不同的RadioGroup中的RadioButton互不相干。即假设组A中有一个选中了,组B中依旧能够有一个被选中;

    4、一个RadioGroup中至少有2个RadioButton;

    5、大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置(默认选中方法android:checked="true" )。

      我们在代码中使用  setOnCheckedChangeListener 来对单选button进行监听。


代码演示样例:

XML文件:

<span ><?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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />  <RadioGroup android:id="@+id/radioGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical">  <RadioButton android:id="@+id/radioBtn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radioBtn1" android:textColor="#ffffff" /> <RadioButton android:id="@+id/radioBtn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radioBtn2" /> </RadioGroup> </LinearLayout> </span>

布局格式如图:


若是希望,文字在前单选框在后,仅仅要在main.xml布局文件里的<RadioButton/>增加

android:button="@null"

android:drawableRight="@android:drawable/btn_radio"就可以

效果及例如以下图显示:



string.xml

<span ><?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">单选button測试</string> <string name="hello">你的性别是</string> <string name="radioBtn1">男</string> <string name="radioBtn2">女</string> </resources> </span>


MainActivity.java


<span >package com.android.radiobutton;  

import android.app.Activity;  
import android.os.Bundle;  
import android.widget.RadioGroup;  
import android.widget.Toast;  
     
public class MainActivity extends Activity {  
          
    //声明RadioGroup  
    RadioGroup raGroup;  
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.main);  
              
       //通过findViewById获得RadioGroup对象  
       raGroup=(RadioGroup)findViewById(R.id.radioGroup);  

       // 加入事件监听器     
       raGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  
                  
           @Override 
           public void onCheckedChanged(RadioGroup group, int checkedId) {  
               // TODO Auto-generated method stub  
               if(checkedId==R.id.radioBtn1){                    
                  Toast.makeText(MainActivity.this, "你的性别是男", Toast.LENGTH_LONG).show();  
               }</span><pre name="code" class="java"><span >               else { 
                   Toast.makeText(MainActivity.this, "你的性别是女", Toast.LENGTH_LONG).show();  
               }  
           }  
        });         
    }  
} </span>




延伸:RadioButton和CheckBox的差别:

1、单个RadioButton在选中后。通过点击无法变为未选中

          单个CheckBox在选中后,通过点击能够变为未选中

    2、一组RadioButton,仅仅能同一时候选中一个

         一组CheckBox。能同一时候选中多个

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

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

详细代码演示样例:


main.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:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/hello"
       android:textSize="20sp"
       android:textStyle="bold"
       android:textColor="#FFFFFF" />
    
   <CheckBox
      android:id="@+id/checkbox1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/football"
      android:textSize="16sp" />
    
   <CheckBox
       android:id="@+id/checkbox2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/basketball"
       android:textSize="16sp" />
    
   <CheckBox
       android:id="@+id/checkbox3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/volleyball"
       android:textSize="16sp"/>
</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">你喜欢的运动是</string>
    <string name="app_name">复选button測试</string>
    <string name="football">足球</string>
    <string name="basketball">篮球</string>
    <string name="volleyball">排球</string>
</resources>



MainActivity.java


package com.android.checkbox;  
     
    import android.app.Activity;  
    import android.os.Bundle;  
    import android.widget.CheckBox;  
    import android.widget.CompoundButton;  
    import android.widget.Toast;  
    import android.widget.CompoundButton.OnCheckedChangeListener;  
     
    public class MainActivity extends Activity{  
        //声明复选按钮  
        private CheckBox cBox1;  
        private CheckBox cBox2;  
        private CheckBox cBox3;  
          
        @Override 
        public void onCreate(Bundle savedInstanceState){  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            //通过findViewById获得CheckBox对象  
            cBox1=(CheckBox)findViewById(R.id.checkbox1);  
            cBox2=(CheckBox)findViewById(R.id.checkbox2);  
            cBox3=(CheckBox)findViewById(R.id.checkbox3);  
     
            //注冊事件监听器  
            cBox1.setOnCheckedChangeListener(listener);  
            cBox2.setOnCheckedChangeListener(listener);  
            cBox3.setOnCheckedChangeListener(listener);  
     
        }  
        //响应事件  
        private OnCheckedChangeListener listener = new OnCheckedChangeListener(){  
            @Override 
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)  
            {  
                //cBox1被选中  
                if (buttonView.getId()==R.id.checkbox1){  
                    if (isChecked){  
                        Toast.makeText(MainActivity.this, "你喜欢足球", Toast.LENGTH_LONG).show();  
                    }  
                }  
                //cBox2被选中  
                else if (buttonView.getId()==R.id.checkbox2){  
                    if (isChecked){  
                        Toast.makeText(MainActivity.this, "你喜欢篮球", Toast.LENGTH_LONG).show();  
                    }  
                }  
                //cBox3被选中  
                else if (buttonView.getId()==R.id.checkbox3){  
                    if (isChecked){  
                        Toast.makeText(MainActivity.this, "你喜欢排球", Toast.LENGTH_LONG).show();  
                    }  
                }         
            }  
        };  
    }



效果图例如以下:




到此结束~~~