Desenvolvimento Android-Componentes comuns do Android-Botão de opção RadioButton

4.5 RadioButton (botão de rádio)

  1. Uso básico do RadioButton (botão de opção) e manipulação de eventos:

    Como no botão de opção de título, apenas um pode ser selecionado, então precisamos colocar o RadioButton no grupo de botões RadioGroup para realizar a função de rádio. Familiarize-se com como usar RadioButton primeiro, um exemplo simples de seleção de gênero: Além disso, podemos definir a propriedade de orientação para o RadioGroup externo e, em seguida, definir o arranjo de RadioButton, seja vertical ou horizontal.

<?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:id="@+id/linerLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请选择性别:"
        android:textSize="23sp"/>
    
    <RadioGroup
        android:id="@+id/group1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <RadioButton
            android:id="@+id/buttonMan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男"
            android:checked="true"/>
        <RadioButton
            android:id="@+id/buttonWoman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女"/>
        
    </RadioGroup>
    <Button
        android:id="@+id/btnpost"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="提交"/>
    
</LinearLayout>

  • Obter o valor selecionado: Existem dois métodos aqui

  A primeira é definir um ouvinte de evento setOnCheckChangeListener para RadioButton

   Crie um novo RadioButtonActivity.java no pacote do aplicativo java.

 

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: Outra coisa a ter em mente é adicionar um id a cada RadioButton, caso contrário, a função do botão de rádio não funcionará! ! !

  O segundo método é obter o valor do botão de opção selecionado clicando em outros botões. Claro, também podemos obtê-lo diretamente, dependendo dos requisitos.

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;
                }
            }
        }));

    }
}

Análise de código: Aqui definimos um ouvinte de evento setOnClickListener para o botão enviar. Cada vez que é clicado, ele percorre o RadioGroup uma vez para determinar qual botão está selecionado. Podemos obter as informações relevantes do RadioButton através dos seguintes métodos.

  • getChildCount ( ) obtém o número de botões de opção no grupo de botões;
  • getChinldAt (i): Obtém nosso botão de opção de acordo com o valor do índice;
  • isChecked ( ): Determina se o botão está marcado.

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

android:name=".RadioButtonActivity"

 启动测试。

当切换选择内容时:

 当提交时:

Acho que você gosta

Origin blog.csdn.net/LYly_B/article/details/129849341
Recomendado
Clasificación