Android开发-Android常用组件-RadioButton单选按钮

4.5  RadioButton(单选按钮)

  1. RadioButton (单选按钮) 基本用法与事件处理:

    如题单选按钮,就是只能够选中一个,所以我们需要把RadioButton放到RadioGroup按钮组中,从而实现单选功能。先熟悉下如何使用RadioButton,一个简单的性别选择的例子:另外我们可以为外层RadioGroup设置orientation属性然后设置RadioButton的排列方式,是竖直还是水平。




    
    
    
        
        
        
    
    

Android开发-Android常用组件-RadioButton单选按钮_第1张图片

  • 获得选中的值:这里有两种方法

  第一种是为RadioButton 设置一个事件监听器setOnCheckChangeListener

   在java的application包中新建一个RadioButtonActivity.java。Android开发-Android常用组件-RadioButton单选按钮_第2张图片

 Android开发-Android常用组件-RadioButton单选按钮_第3张图片

package com.example.myapplication;

import android.os.Bundle;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class RadioButtonActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radio_button);
        Button btnchage = (Button) findViewById(R.id.btnpost);
        final RadioGroup radgroup = (RadioGroup) findViewById(R.id.group1);
        //第一种是为RadioButton 设置一个事件监听器setOnCheckChangeListener
        radgroup.setOnCheckedChangeListener(((group, checkedId) -> {
            RadioButton radioButton = (RadioButton) findViewById(checkedId);
            Toast.makeText(getApplicationContext(),"你选了:"+radioButton.getText(),Toast.LENGTH_LONG).show();
        }));
       
    }
}

PS:另外有一点要切记,要为每个 RadioButton 添加一个id,不然单选功能不会生效!!!

  第二种方法是通过单击其他按钮获取选中单选按钮的值,当然我们也可以直接获取,这个看需求。

package com.example.myapplication;

import android.os.Bundle;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class RadioButtonActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radio_button);
        Button btnchage = (Button) findViewById(R.id.btnpost);
        final RadioGroup radgroup = (RadioGroup) findViewById(R.id.group1);
        //第一种是为RadioButton 设置一个事件监听器setOnCheckChangeListener
        radgroup.setOnCheckedChangeListener(((group, checkedId) -> {
            RadioButton radioButton = (RadioButton) findViewById(checkedId);
            Toast.makeText(getApplicationContext(),"你选了:"+radioButton.getText(),Toast.LENGTH_LONG).show();
        }));
        //第二种方法是通过单击其他按钮获取选中单选按钮的值,当然我们也可以直接获取,这个看需求。
        btnchage.setOnClickListener((v -> {
            for (int i = 0; i < radgroup.getChildCount(); i++) {
                RadioButton rb = (RadioButton) radgroup.getChildAt(i);
                if (rb.isChecked()){
                    Toast.makeText(getApplicationContext(),"你选择的是:"+rb.getText(),Toast.LENGTH_LONG).show();
                    break;
                }
            }
        }));

    }
}

代码解析: 这里我们为提交按钮设置了一个setOnClickListener 事件监听器,每次点击的话遍历一次RadioGroup判断哪个按钮被选中我们可以通过下述方法获得RadioButton的相关信息。

  • getChildCount( )获得按钮组中的单选按钮的数目;
  • getChinldAt(i):根据索引值获取我们的单选按钮;
  • isChecked( ):判断按钮是否选中。

 测试:将main包下的AndroidMainifest.xml文件中的标签下标签中的android:name的值改为.RadioButtonActivity

android:name=".RadioButtonActivity"

Android开发-Android常用组件-RadioButton单选按钮_第4张图片

 启动测试。

当切换选择内容时:

Android开发-Android常用组件-RadioButton单选按钮_第5张图片

 当提交时:

Android开发-Android常用组件-RadioButton单选按钮_第6张图片

你可能感兴趣的:(android,android,studio,ide)