Android 开发之RadioButton

RadioButton 即单选按钮,最多见的地方就是在用户注册的时候,选择 “男” 或者 “女”,RadioButton的特点,多个只能同时选择一个,先 看看 今天的内容

  • 单选按钮(RadioButton)的基本概念
  • RadioGroup 和 RadioButton
  • OnClickListener 与 OnCheckedChangeListener 监听器
  1. 什么是单选按钮

这个就是单选按钮,是不是非常眼熟啊!选中的单选按钮前面的圆圈是蓝色的,这里不得不提一下上一篇讲的复选框(CheckBox)真是一对好基友啊;:-)

单选按钮(RadioButton) 和 复选框 (CheckBox)不仅仅是 样子上的区别,一组单选按钮只能选择一个,而复选框能可以选择多个,RadioButton 涉及到 组的概念,而 CheckBox没这个概念。

 RadioButton的使用方法是在 布局文件中声明RadioGroup,java代码中获取该对象,然后对该对象进行操作。

  2.    RadioGroup 是一组的意思,即可以多个RadioButton 包含在一个RadioGroup里面

   <RadioGroup 
       android:id="@+id/radiogroup1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       >
       <RadioButton 
           android:id="@+id/radio1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="男"
           />
        <RadioButton 
           android:id="@+id/radio2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="女"
           />
       
   </RadioGroup>

这就是一组RadioButton,一个RadioGroup里面 有2个RadioButton。

  3. 下面我们来看看OnCheckedChangeListener  监听器,和CheckBox类似,当选中的状态发生改变是触发该监听

布局文件和上面的一样,下面看 Java代码

package com.zhoucj.messagedemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;

public class MainActivity extends Activity {

    RadioGroup radioGroup;
    RadioButton radio1;
    RadioButton radio2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        radioGroup=(RadioGroup)findViewById(R.id.radiogroup1);
        radio1=(RadioButton)findViewById(R.id.radio1);
        radio2=(RadioButton)findViewById(R.id.radio2);
        
        radioGroup.setOnCheckedChangeListener(new radioOnCheckedChangeListener());

    }
    
    class radioOnCheckedChangeListener implements OnCheckedChangeListener
    {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if(checkedId==radio1.getId())
            {
                showToast("男");
            }else if(checkedId==radio2.getId())
            {
                showToast("女");
            }
            
        }
        
    }
    
    
    public void showToast(String msg)
    {
        Toast.makeText(this, msg, 2000).show();
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

运行结果 如下:

RadioGroup的特点 就是选中一个时,另一个会取消选择,也就是说,在RadioGroup里面,一次只能选中一个。

对于单选按钮来说,掌握RadioGroup 和 监听器是有必要的。

好了,今天就写到这里了,正好过节了,等下还要去看龙舟比赛。

原文地址:https://www.cnblogs.com/zhoujian315/p/3131688.html