单选按钮和复选框传递数据

目录

理论:

单选按钮组

常用属性

设置事件监听器

单选按钮

设置事件监听器

复选框

常用方法

设置事件监听器

 具体例子:

创建安卓应用

 将背景图片拷贝到drawable目录

打开字符串资源文件strings.xml 输入代码

打开主布局资源文件 activity_main.xml输入代码:

最后运行效果:


理论:

安卓应用中,常常需要用户从若干选项中进行选择,有时要求只能选择一个,那么就要使用单选按钮(RadioButton),有时要求用户可以选择多个,那么就要使用复选框(CheckBox)。

单选按钮组

常用属性

属性 含义
orientation vertical 或 horizontal,决定单选按钮是垂直排列还是水平排列
layout_width 宽度(单位:dp)
layout_height 高度(单位:dp)

设置事件监听器

设置监听器 作用
setOnCheckedChangeListener 监听单选按钮选中状态的变化
setOnClickListener 监听单选按钮组是否被单击了

单选按钮

常用方法

方法 作用
isChecked() true 或false,显示单选按钮的选中状态
setChecked() 参数是true或false,用来设置单选按钮的选中状态

设置事件监听器

设置监听器 作用
setOnCheckedChangeListener 监听单选按钮选中状态的变化
setOnClickListener 监听单选按钮是否被单击了

复选框

常用方法

方法 作用
isChecked() true 或false,显示复选框的选中状态
setChecked() 参数是true或false,用来设置复选框的选中状态

设置事件监听器

设置监听器 作用
setOnCheckedChangeListener 监听复选框选中状态的变化
setOnClickListener 监听复选框是否被单击了

三个控件的继承关系图

 具体例子:

创建安卓应用

创建安卓应用SetBasicInformation

 将背景图片拷贝到drawable目录

打开字符串资源文件strings.xml 输入代码

 具体代码:

<resources>
    <string name="app_name">设置基本信息</string>
    <string name="set_information">设置基本信息</string>
    <string name="name">姓名:</string>
    <string name="input_name">请输入姓名</string>
    <string name="gender">性别:</string>
    <string name="male">男</string>
    <string name="female">女</string>
    <string name="hobby">爱好:</string>
    <string name="music">音乐</string>
    <string name="read">阅读</string>
    <string name="food">美食</string>
    <string name="ok">确定</string>
    <string name="clear">清除</string>
    <string name="exit">退出</string>
</resources>

打开主布局资源文件 activity_main.xml输入代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/img"
    android:orientation="vertical"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:paddingTop="50dp"
    >
    <TextView
        android:id="@+id/tv_setinformation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="30dp"
        android:text="@string/set_information"
        android:textColor="#0000ff"
        android:textSize="30sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/name"
            android:textColor="#000000"
            android:textSize="20sp" />

        <EditText
            android:id="@+id/edt_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/input_name"
            android:singleLine="true"
            android:textSize="20sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_gender"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/gender"
            android:textColor="#000000"
            android:textSize="20sp" />

        <RadioGroup
            android:id="@+id/rg_gender"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/rb_male"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="@string/male"
                android:textSize="20sp"/>

            <RadioButton
                android:id="@+id/rb_female"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:text="@string/female"
                android:textSize="20sp"/>
        </RadioGroup>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_hobby"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hobby"
            android:textColor="#000000"
            android:textSize="20sp" />

        <CheckBox
            android:id="@+id/cb_music"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/music"
            android:textSize="20sp"/>

        <CheckBox
            android:id="@+id/cb_read"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/read"
            android:textSize="20sp"/>

        <CheckBox
            android:id="@+id/cb_food"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/food"
            android:textSize="20sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp">

        <Button
            android:id="@+id/btn_ok"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="doOK"
            android:layout_marginRight="10dp"
            android:text="@string/ok"
            android:textSize="20sp"/>

        <Button
            android:id="@+id/btn_clear"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="doClear"
            android:layout_marginRight="10dp"
            android:text="@string/clear"
            android:textSize="20sp"/>

        <Button
            android:id="@+id/btn_exit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="doExit"
            android:text="@string/exit"
            android:textSize="20sp"/>
    </LinearLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginTop="10dp"
        android:background="#dddddd"/>

    <TextView
        android:id="@+id/tv_result"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_marginTop="30dp"
        android:textSize="20sp"
        />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginTop="10dp"
        android:background="#dddddd"/>


</LinearLayout>

打开主界面类 MainActivity输入代码:

 具体代码:

package net.zyt.set_basic;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Locale;

public class MainActivity extends AppCompatActivity {
    private EditText etName;//姓名编辑框
    private RadioGroup rgGender;//性别单选按钮
    private RadioButton rbMale;//男性单选按钮
    private RadioButton rbFemale;//女性单选按钮
    private CheckBox cbMusic;//音乐复选框
    private CheckBox cbRead;//阅读复选框
    private CheckBox cbFood;//美食复选框
    private TextView tvResult;//结束标签

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 利用布局资源文件设置用户界面
        setContentView(R.layout.activity_main);
        // 通过资源标识符获得控件实例
        etName=findViewById(R.id.edt_name);
        rgGender=findViewById(R.id.rg_gender);
        rbMale=findViewById(R.id.rb_male);
        rbFemale=findViewById(R.id.rb_female);
        cbMusic=findViewById(R.id.cb_music);
        cbRead=findViewById(R.id.cb_read);
        cbFood=findViewById(R.id.cb_food);
        tvResult=findViewById(R.id.tv_result);

//        //给按钮注册单击事件处理方法
//        rgGender.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                switch (rgGender.getCheckedRadioButtonId()) {
//                    case R.id.rb_male://选中男性单选按钮
//                        Toast.makeText(MainActivity.this, "你选择了【男】!", Toast.LENGTH_SHORT);
//                        break;
//                    case R.id.rb_female://选中女性单选按钮
//                        Toast.makeText(MainActivity.this, "你选择了【女】!", Toast.LENGTH_SHORT);
//                        break;
//                }
//            }
        }


//提交按钮单击事件处理方法
            public void doOK(View view) {
                //获取姓名
                String name = etName.getText().toString().trim();
                //获取性别
                String gender = "";
                //判断用户选中那个单选按钮
                switch (rgGender.getCheckedRadioButtonId()) {// 根据选中的单选按钮id进行判断
                    case R.id.rb_male://选中男性单选按钮
                        gender = rbMale.getText().toString();

                        break;
                    case R.id.rb_female:
                        gender = rbFemale.getText().toString();
                        break;
                }
                //获取爱好
                StringBuilder builder = new StringBuilder();//字符串生成器
                //判断用户是否选中了音乐复选框
                if (cbMusic.isChecked()) {
                    builder.append(cbMusic.getText().toString() + "");
                }
                //判断用户是否选中了阅读复选框
                if (cbRead.isChecked()) {
                    builder.append(cbRead.getText().toString() + "");
                }
                //判断用户是否选中了美食复选框
                if (cbFood.isChecked()) {
                    builder.append(cbFood.getText().toString() + "");
                }
                String hobbies = builder.toString().trim();//去掉空格
                //通过标签显示基本信息
                String result = "姓名:" + name + "\n"
                        + "性别" + "gender" + "\n"
                        + "爱好" + hobbies;
                tvResult.setText(result);

            }


            //    清除按钮单击事件处理方法
            public void doClear(View view) {
                etName.setText("");
                rbMale.setChecked(true);
                cbMusic.setChecked(false);
                cbRead.setChecked(false);
                cbFood.setChecked(false);
                tvResult.setText("");

            }

            //    退出按钮单击事件处理方法
            public void doExit(View view) {
                finish();
            }
        }

最后运行效果:

 

猜你喜欢

转载自blog.csdn.net/hollow_future/article/details/127924605