常用组件的综合应用--注册窗口(数值)

过程中出了点小问题,详情见:https://www.cnblogs.com/Master-Sun/p/14260259.html

activity_reg.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"
    tools:context=".RegActivity"
    android:padding="10dp"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:text="姓名"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/et_reg_name"
            android:maxLines="1"
            android:layout_weight="0.3"
            android:inputType="text"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>
        <TextView
            android:text="年龄"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/et_reg_age"
            android:maxLines="1"
            android:layout_weight="0.3"
            android:inputType="number"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>
         <!--weight权重 站的比例-->

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:text="电话"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/et_reg_phone"
            android:maxLines="1"
            android:layout_weight="0.3"
            android:inputType="phone"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>
        <TextView
            android:text="地址"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/et_reg_address"
            android:maxLines="1"
            android:layout_weight="0.3"
            android:inputType="text"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>
        <!--weight权重 站的比例-->

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="20dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别:"
            android:layout_gravity="center"/>
        <RadioGroup
            android:id="@+id/re_reg_gender"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rb_reg_male"
                android:checked="true"
                android:text="男"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rb_reg_female"
                android:text="女"/>
        </RadioGroup>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="20dp">
        <TextView
            android:text="爱好:"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <CheckBox
            android:id="@+id/cb_reg_sing"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="唱"/>
        <CheckBox
            android:id="@+id/cb_reg_dance"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="跳"/>
        <CheckBox
            android:id="@+id/cb_reg_rap"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="rap"/>
        <CheckBox
            android:id="@+id/cb_reg_basketball"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="篮球"/>


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="20dp"
        android:gravity="center_horizontal">

        <Button
            android:layout_marginRight="10dp"
            android:id="@+id/btn_reg_submit"
            android:text="提交"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:layout_marginLeft="10dp"
            android:id="@+id/btn_reg_cancel"
            android:text="取消"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    </LinearLayout>
    <TextView
        android:id="@+id/tv_reg_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

RegActivity.java

package com.androidstudy.uicomponenttest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class RegActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btnSubmit,btnCancel;
    private EditText etName,etAge,etPhone,etAddr;
    private RadioGroup rgGender;
    private CheckBox cbSing,cbDance,cbRap,cbBasketball;
    private TextView tvContent;
    private String gender;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_reg);
        initView();
    }


    public void initView(){
//        btnSubmit.findViewById(R.id.btn_reg_submit); //出现问题,
//        LayoutInflater inflater = (LayoutInflater) LayoutInflater.from(this);//也错了
 //       LinearLayout Reg = (LinearLayout) inflater.inflate(R.layout.activity_reg,null);

        btnSubmit=this.findViewById(R.id.btn_reg_submit);
        btnCancel=this.findViewById(R.id.btn_reg_cancel);

        btnSubmit.setOnClickListener(this);//监听器注册
        btnCancel.setOnClickListener(this);

        etName=this.findViewById(R.id.et_reg_name);
        etAge=this.findViewById(R.id.et_reg_age);
        etPhone=this.findViewById(R.id.et_reg_phone);
        etAddr=this.findViewById(R.id.et_reg_address);

        rgGender=this.findViewById(R.id.re_reg_gender);

        cbSing=this.findViewById(R.id.cb_reg_sing);
        cbDance=this.findViewById(R.id.cb_reg_dance);
        cbRap=this.findViewById(R.id.cb_reg_rap);
        cbBasketball=this.findViewById(R.id.cb_reg_basketball);

        tvContent = this.findViewById(R.id.tv_reg_content);


        //监听checkbox的状态
        CompoundButton.OnCheckedChangeListener checkedChangeListener = new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                switch (buttonView.getId()){
                    case R.id.cb_reg_sing:
                        if(isChecked){
                            Toast.makeText(RegActivity.this,"唱",Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.cb_reg_dance:
                        if(isChecked){
                            Toast.makeText(RegActivity.this,"跳",Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.cb_reg_rap:
                        if(isChecked){
                            Toast.makeText(RegActivity.this,"rap",Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.cb_reg_basketball:
                        if(isChecked){
                            Toast.makeText(RegActivity.this,"篮球",Toast.LENGTH_SHORT).show();
                        }
                        break;
                }
            }
        };
        cbSing.setOnCheckedChangeListener(checkedChangeListener);
        cbDance.setOnCheckedChangeListener(checkedChangeListener);
        cbRap.setOnCheckedChangeListener(checkedChangeListener);
        cbBasketball.setOnCheckedChangeListener(checkedChangeListener);


        //监听单选
        rgGender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton rb = findViewById(checkedId); //被选中的RadioButton的id
                gender = rb.getText().toString();
                Log.d("信息", gender);

            }
        });


    }


    //按钮点击
    @Override
    public void onClick(View v) {

        switch (v.getId()){
            case R.id.btn_reg_submit:

                StringBuilder hobby = new StringBuilder();
                if(cbSing.isChecked()){
                    hobby.append(cbSing.getText().toString()).append("  ");//两个点后面是有顺序的 相当于append里面+ + +
                }
                if(cbDance.isChecked()){
                    hobby.append(cbDance.getText().toString()).append("  ");//两个点后面是有顺序的 相当于append里面+ + +
                }
                if(cbRap.isChecked()){
                    hobby.append(cbRap.getText().toString()).append("  ");//两个点后面是有顺序的 相当于append里面+ + +
                }
                if(cbBasketball.isChecked()){
                    hobby.append(cbBasketball.getText().toString()).append("  ");//两个点后面是有顺序的 相当于append里面+ + +
                }
                StringBuilder info = new StringBuilder();
                info.append("姓名:" + etName.getText().toString()+"
");
                info.append("年龄:" + etAge.getText().toString()+"
");
                info.append("电话:" + etPhone.getText().toString()+"
");
                info.append("地址:" + etAddr.getText().toString()+"
");
                info.append("性别:"+ gender+"
");
                info.append(hobby.toString());

                tvContent.setText(info.toString());
                
                break;
            case R.id.btn_reg_cancel:
                break;
        }
    }
}
原文地址:https://www.cnblogs.com/Master-Sun/p/14260238.html