Android studio 安卓填写注册表单源代码 (课后练习的答案)

Android studio 安卓填写注册表单源代码 (课后练习的答案)_第1张图片

Android studio 安卓填写注册表单源代码 (课后练习的答案)_第2张图片
activity_mian.xml


    
    


    


    
    


    

    


    
    


    
    


    
    


    
    


    
    

MainActivity.java
package com.example.registerpage;

import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.ToggleButton;

import com.example.registerpage.R;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {
private EditText myName;
private EditText myPwd;
private EditText myRePwd;
private ToggleButton mySex;
private EditText myBirth;
private Spinner myDegree;
private CheckBox myAccept;
private Button mySubmit;
private int myYear, myMonth, myDay;
private String mydegreeTemp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViews();
    //1.设置日期事件监听器
    myBirth.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {     	// (1)单击日期框事件
            DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, DateListener, myYear, myMonth, myDay);                     	// (1)创建DatePickerDialog对象,设置初始日期
            datePickerDialog.show();      	// (1)显示DatePickerDialog组件(即日期选择对话框)
        }
    });
    //2.②设置学历下拉列表监听器
    Spinner.OnItemSelectedListener listener = new Spinner.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView parent, View view, int pos, long id) {
            mydegreeTemp = parent.getItemAtPosition(pos).toString();
        }							// (2)②将选择项字符串作为值

        @Override
        public void onNothingSelected(AdapterView parent) {
            mydegreeTemp = "未知";		// (2)②没有选择值为未知
        }
    };
    myDegree.setOnItemSelectedListener(listener);
}

private void findViews() {
    myName = (EditText) findViewById(R.id.myEditName);
    myPwd = (EditText) findViewById(R.id.myEditPwd);
    myRePwd = (EditText) findViewById(R.id.myEditRePwd);
    mySex = (ToggleButton) findViewById(R.id.myToggleButtonSex);
    myBirth = (EditText) findViewById(R.id.myEditBirth);
    myDegree = (Spinner) findViewById(R.id.mySpinnerDegree);
    myAccept = (CheckBox) findViewById(R.id.myCheckBoxAccept);
    mySubmit = (Button) findViewById(R.id.myButtonSubmit);
    //初始化日历
    Calendar calendar = Calendar.getInstance(Locale.CHINA);  	// (2)①创建Calendar对象
    Date date = new Date();                				// (2)①获取当前日期Date对象
    calendar.setTime(date);            					// (2)①为Calendar对象设置为当前日期
    myYear = calendar.get(Calendar.YEAR) - 20;       		// (2)①获取Calendar对象中的年
    myMonth = calendar.get(Calendar.MONTH);      		// (2)①获取Calendar对象中的月
    myDay = calendar.get(Calendar.DAY_OF_MONTH);  		// (2)①获取Calendar对象中的日
    myBirth.setText("点击这里选择...");
    //2.②初始化学历
    List list = new ArrayList();				// (2)②创建字符串数组
    list.add("博士");								// (2)②向字符串数组加入元素
    list.add("硕士");
    list.add("学士");
    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, list);													// (2)②创建字符串数组适配器
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   //2.②
    myDegree.setAdapter(adapter);	// (2)②将字符串数组适配器与学历控件联系起来
}
// (1) 监听日期输入控件单击事件
private DatePickerDialog.OnDateSetListener DateListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
        myYear = year;	// (2)①当前选择的日期年赋值给全局年变量
        myMonth = month;
        myDay = day;
        //更新日期
        myBirth.setText(myYear + "年" + (myMonth + 1) + "月" + myDay + "日");
    }
};
// (2)③myCheckBoxAccept控件单击事件
public void onCheckBoxClick(View view) {
    if (myAccept.isChecked()) {
        if (isValid(myRePwd)) mySubmit.setEnabled(true);		// (2)③两个密码一致, “提交”按钮可用
        else myAccept.setChecked(false);
    } else mySubmit.setEnabled(false);
}
// (2)③判断两个密码是否一致,一致返回true,否则false
private boolean isValid(EditText editText) {
    String pwd = myPwd.getText().toString();
    String repwd = editText.getText().toString();
    if (!repwd.equals(pwd)) {
        editText.setError("两次输入不一致!");		// (2)③在密码myRePwd控件中显示错误提示
        return false;
    } else
        return true;
}

}

如果出现代码显示红色,点击红色部分,按住Alt+Enter,将代码引入对应的class,转换一下。

你可能感兴趣的:(Android studio 安卓填写注册表单源代码 (课后练习的答案))