Android单选复选按钮

RadioGroup、RadioButton、ChexBox的使用

一、案例演示

单选多选选中正确答案后,在提交按钮处会提示答对信息,存在问题显示选中答案信息会叠加,需要后期改正
在这里插入图片描述

二、实现步骤

单选和多选的页面布局,通过RadioGroup包含RadioButton实现单选按钮只可以被选中一个。

1、activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity3">
    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="你的答案"></TextView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="1、请问坤坤喜欢的运动是什么?"></TextView>
    <RadioGroup
        android:id="@+id/group1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <RadioButton
            android:id="@+id/text1a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="A、唱"></RadioButton>
        <RadioButton
            android:id="@+id/text1b"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="B、跳"></RadioButton>
        <RadioButton
            android:id="@+id/text1c"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="C、rap"></RadioButton>
        <RadioButton
            android:id="@+id/text1d"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="D、篮球"></RadioButton>
    </RadioGroup>
    <TextView
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="你的答案"></TextView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="2、请问坤坤喜欢的运动是什么?"></TextView>
    <CheckBox
        android:id="@+id/text2a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A、唱"></CheckBox>
    <CheckBox
        android:id="@+id/text2b"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="B、跳"></CheckBox>
    <CheckBox
        android:id="@+id/text2c"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="C、rap"></CheckBox>
    <CheckBox
        android:id="@+id/text2d"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="D、篮球"></CheckBox>
    <CheckBox
        android:id="@+id/text2e"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="E、watch"></CheckBox>
<Button
    android:id="@+id/text1submit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="提交"></Button>
</LinearLayout>

2、MainActivity.java(单选)

radioGroup.setOnCheckedChangeListener实现单选的事件监听,radioGroup.getCheckedRadioButtonId()判断选中的id

public class MainActivity extends AppCompatActivity {
    private TextView textView;
    private RadioGroup radioGroup;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView=findViewById(R.id.text1);
        radioGroup=findViewById(R.id.group1);
        button=findViewById(R.id.text1submit);

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            //当前radiogroup对象,选中的单选按钮id
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                String text1= "你的答案";
                switch (checkedId){
                    case R.id.text1a:
                        textView.setText(text1+"A");break;
                    case R.id.text1b:
                        textView.setText(text1+"B");break;
                    case R.id.text1c:
                        textView.setText(text1+"C");break;
                    case R.id.text1d:
                        textView.setText(text1+"D");break;
                }
            }
        });
        //提交按钮事件监听
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int count=0;
                //单选的正确答案
                if(radioGroup.getCheckedRadioButtonId()==R.id.text1a){
                    count++;
                    button.setText("您答对了"+count+"题");
                }
            }
        });
    }
}

3、MainActivity.java(复选)

public class MainActivity extends AppCompatActivity {
    private TextView textView2;
    private RadioGroup radioGroup;
    private Button button;
    private CheckBox text2a,text2b,text2c,text2d,text2e;
    //给一个复选框设置事件监听
    private CompoundButton.OnCheckedChangeListener listener=new CompoundButton.OnCheckedChangeListener() {
        //当前按钮对象,是否被选中
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            //被选中
            if(buttonView.isChecked()==true){
                String text2= (String) textView2.getText();
                //选项的第一个字符,就是ABCDE
                String a=buttonView.getText().toString().substring(0,1);
                textView2.setText(text2+a);

            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView2=findViewById(R.id.text2);
        button=findViewById(R.id.text1submit);
        text2a=findViewById(R.id.text2a);
        text2b=findViewById(R.id.text2b);
        text2c=findViewById(R.id.text2c);
        text2d=findViewById(R.id.text2d);
        text2e=findViewById(R.id.text2e);

        text2a.setOnCheckedChangeListener(listener);
        text2b.setOnCheckedChangeListener(listener);
        text2c.setOnCheckedChangeListener(listener);
        text2d.setOnCheckedChangeListener(listener);
        text2e.setOnCheckedChangeListener(listener);
        //提交按钮事件监听
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int count=0;
                //多选的正确答案
                if(text2a.isChecked()==true&& text2b.isChecked()==true&&
                text2c.isChecked()==true&& text2d.isChecked()==true&&
                text2e.isChecked()==false){
                    count++;
                    button.setText("您答对了"+count+"题");
                }
            }
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑伴你而行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值