Android控件——RadioGroup/RadioButton定义及监听

来源:互联网 发布:国外域名代理商 编辑:程序博客网 时间:2024/06/06 02:31

定义 :

1.RadioGroup:是RadioButton的一个集合,提供多选一机制;
2.属性:android:orientation=”vertical”|”horizontal” 分别表示垂直排布和水平排布

简单来说,radiobutton是单选机制,而且不像复选框checkBox,radiobutton选中之后再次点击无法取消选中,我们来看实现过程

  • 首先,我们先拖拉一个RadioGroup和两个RadioButton
    这里写图片描述

在默认情况下,RadioButton是垂直排布的,我们可以根据自己实际情况,在RadioGroup下利用android:orientation对其进行更改

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.admin.radiogroup.MainActivity">    <RadioGroup        android:id="@+id/radioGroup"//AS默认没有这句,我们需自己添加        android:orientation="horizontal" //在此修改垂直或水平排布        android:layout_width="match_parent"        android:layout_height="match_parent">        <RadioButton            android:id="@+id/radioButton1"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_weight="1"            android:checked="true"//初始选中状态,根据实际情况进行设置            android:text="男" />        <RadioButton            android:id="@+id/radioButton2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="女" />    </RadioGroup></LinearLayout>
  • 然后我们去MainActivity对控件进行初始化和设置监听
package com.example.admin.radiogroup;import android.os.Bundle;import android.support.annotation.IdRes;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.RadioGroup;public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {    private RadioGroup rg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rg = (RadioGroup) findViewById(R.id.radioGroup);        //设置监听事件        rg.setOnCheckedChangeListener(this);    }    @Override    public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {        switch (checkedId){        case R.id.radioButton1:            //打印日志            Log.i("tag","男");            break;        case R.id.radioButton2:            Log.i("tag","女");            break;        }    }}
  • 看一下运行效果:

这里写图片描述