安卓学习 Day3:完成用户注册作业

目录

任务:实现用户注册功能

一、新建项目

 二、修改主界面名称与主布局文件名

三、导入背景图片资源

 四、创建按钮边框配置文件

五、在字符串资源文件里定义变量

 六、编写登录布局资源文件 - activity_login.xml

 七、基于模板创建主界面

八、事件处理

九、修改主布局资源文件 

 十、编写主界面代码

 十一、修改主界面活动栏标题

 十二、优化代码

 十三、修改文件代码


任务:实现用户注册功能

在这里插入图片描述

一、新建项目

  • 选择一个空的模板 

  • 完善项目信息

 二、修改主界面名称与主布局文件名

MainActivity改名为LoginActivity 

  • activity_main.xml改名为activity_login.xml

三、导入背景图片资源

 四、创建按钮边框配置文件

 

  • 源代码 
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#808080" />
    <corners
        android:bottomLeftRadius="8dp"
        android:bottomRightRadius="8dp"
        android:topLeftRadius="8dp"
        android:topRightRadius="8dp" />
    <stroke
        android:width="0.5dp"
        android:color="#808080" />
</shape>

五、在字符串资源文件里定义变量

  • 源代码
<resources>
    <string name="app_name">用户注册</string>
    <string name="name">姓名:</string>
    <string name="gender">性别:</string>
    <string name="age">年龄:</string>
    <string name="telephone">电话:</string>
    <string name="mailbox">邮箱:</string>
    <string name="homepage">主页:</string>
    <string name="remarks">备注:</string>
    <string name="register">注册</string>
    <string name="cancel">取消</string>
</resources>

 六、编写登录布局资源文件 - activity_login.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:background="@mipmap/background"
    android:orientation="vertical"
    tools:context=".LoginActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.5"
        android:text="Hello World!"
        android:gravity="center" >

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!"
        android:gravity="center" >
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/name"
            android:textSize="25dp"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/edt_username"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/gender"
            android:textSize="25dp"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/edt_gender"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/age"
            android:textSize="25dp"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/edt_age"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/telephone"
            android:textSize="25dp"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/edt_telephone"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/mailbox"
            android:textSize="25dp"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/edt_mailbox"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/homepage"
            android:textSize="25dp"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/edt_homepage"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:text="Hello World!"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/remarks"
            android:textSize="25dp"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/edt_remarks"
            android:layout_width="250dp"
            android:layout_height="100dp"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:text="Hello World!"
        android:gravity="center" >

        <Button
            android:id="@+id/btn_login"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="39dp"
            android:background="@drawable/button_border"
            android:text="@string/register"
            android:textSize="20sp" />

        <Button
            android:id="@+id/btn_cancel"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginBottom="39dp"
            android:background="@drawable/button_border"
            android:text="@string/cancel"
            android:textSize="20sp" />


    </LinearLayout>

</LinearLayout>
  •  运行程序,查看效果

 七、基于模板创建主界面

八、事件处理

  • 修改登录布局资源文件

  • 编写注册界面代码

  • 源代码
package net.zs.register;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class LoginActivity extends AppCompatActivity {
    private EditText edtUsername;
    private EditText edtGender;
    private EditText edtAge;
    private EditText edtTelephone;
    private EditText edtMailbox;
    private EditText edtHomepage;
    private EditText edtRemarks;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        // 通过资源标识符获取控件实例
        edtUsername = findViewById(R.id.edt_username);
        edtGender = findViewById(R.id.edt_gender);
        edtAge = findViewById(R.id.edt_age);
        edtTelephone = findViewById(R.id.edt_telephone);
        edtMailbox = findViewById(R.id.edt_mailbox);
        edtHomepage = findViewById(R.id.edt_homepage);
        edtRemarks = findViewById(R.id.edt_remarks);
    }

    /**
     * 注册事件处理方法
     *
     */
    public void doRegister(View v){
        // 获取用户输入的数据
        String username = edtUsername.getText().toString().trim();
        String gender = edtGender.getText().toString().trim();
        String age = edtAge.getText().toString().trim();
        String telephone = edtTelephone.getText().toString().trim();
        String mailbox = edtMailbox.getText().toString().trim();
        String homepage = edtHomepage.getText().toString().trim();
        String remarks = edtRemarks.getText().toString().trim();
        // 创建意图(参数1:起始组件;参数2:目标组件)
        Intent intent = new Intent(this, MainActivity.class);
        // 让意图携带数据
        intent.putExtra("username", username);
        // 按意图实现界面跳转
        startActivity(intent);
    }

    /**
     * 取消事件处理方法
     *
     */
    public void doCancel(View v) {
        // 关闭当前窗口
        finish();
    }
}
  •  运行程序,查看效果

九、修改主布局资源文件 

  • 将约束布局改为线性布局

  • 导入主界面的背景图片

  • 设置背景的属性和对齐方式

  • 添加一个标签,用于显示注册信息 

 十、编写主界面代码

 十一、修改主界面活动栏标题

  • 在字符串资源文件里定义主界面标题变量

  •  项目清单文件里设置主界面的标题

  •  运行程序,查看效果

 十二、优化代码

在这里插入图片描述

 十三、修改文件代码

  • 修改字符串资源文件的代码

  • 修改注册界面布局代码
<?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:background="@mipmap/background"
    android:orientation="vertical"
    tools:context=".LoginActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1.5"
        android:gravity="center"
        android:text="Hello World!">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="25dp"
            android:text="@string/rein"
            android:textColor="#0000ff"
            android:textSize="30dp" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="@string/user"
            android:textColor="#000000"
            android:textSize="25dp" />

        <EditText
            android:id="@+id/edt_username"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:hint="@string/user_hint"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="@string/password"
            android:textColor="#000000"
            android:textSize="25dp" />

        <EditText
            android:id="@+id/edt_gender"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="24dp"
            android:hint="@string/password_hint"
            android:singleLine="true" />

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="@string/telephone"
            android:textColor="#000000"
            android:textSize="25dp" />

        <EditText
            android:id="@+id/edt_telephone"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="24dp"
            android:hint="@string/telephone_hint"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="@string/mailbox"
            android:textColor="#000000"
            android:textSize="25dp" />

        <EditText
            android:id="@+id/edt_mailbox"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="24dp"
            android:hint="@string/mailbox_hint"
            android:singleLine="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="@string/gender"
            android:textColor="#000000"
            android:textSize="25dp" />

        <RadioGroup
            android:id="@+id/radioGroup1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="24dp"
            android:orientation="horizontal">


            <RadioButton
                android:id="@+id/radio0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男"
                android:textSize="30sp" />

            <RadioButton
                android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女"
                android:textSize="30sp" />
        </RadioGroup>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="Hello World!">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="@string/interest"
            android:textColor="#000000"
            android:textSize="25dp" />

        <CheckBox
            android:id="@+id/edt_travel"
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="43dp"
            android:text="@string/travel"
            android:textSize="24dp" />

        <CheckBox
            android:id="@+id/edt_music"
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="@string/music"
            android:textSize="24dp" />

        <CheckBox
            android:id="@+id/edt_food"
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="@string/food"
            android:textSize="24dp" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:gravity="center"
        android:text="Hello World!">

        <Button
            android:id="@+id/btn_login"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="39dp"
            android:background="@drawable/button_border"
            android:onClick="doRegister"
            android:text="@string/submit"
            android:textSize="20sp" />

        <Button
            android:id="@+id/btn_cancel"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginBottom="39dp"
            android:background="@drawable/button_border"
            android:onClick="doCancel"
            android:text="@string/reset"
            android:textSize="20sp" />


    </LinearLayout>

</LinearLayout>
  • 修改注册界面的代码,编辑事件处理方法
package net.zs.register;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class LoginActivity extends AppCompatActivity {
    private EditText edtUsername;
    private EditText edtPassword;
    private EditText edtTelephone;
    private EditText edtMailbox;
    private RadioGroup radioGender;
    private RadioButton radioMale;
    private RadioButton radioFemale;
    private CheckBox edt_travel;
    private CheckBox edt_music;
    private CheckBox edt_food;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        // 通过资源标识符获取控件实例
        edtUsername = findViewById(R.id.edt_username);
        edtPassword = findViewById(R.id.edt_password);
        edtTelephone = findViewById(R.id.edt_telephone);
        edtMailbox = findViewById(R.id.edt_mailbox);
        radioGender = findViewById(R.id.radioGender);
        radioMale = findViewById(R.id.radioMale);
        radioFemale = findViewById(R.id.radioFemale);
        edt_travel = findViewById(R.id.edt_travel);
        edt_music = findViewById(R.id.edt_music);
        edt_food = findViewById(R.id.edt_food);

    }

    /**
     * 注册事件处理方法
     *
     */
    public void doRegister(View v){
        // 获取用户输入的数据
        String username = edtUsername.getText().toString().trim();
        String password = edtPassword.getText().toString().trim();
        String telephone = edtTelephone.getText().toString().trim();
        String mailbox = edtMailbox.getText().toString().trim();
        // 获取性别值
        String strGender = "";
        switch (radioGender.getCheckedRadioButtonId()) { // 根据选中的单选按钮id进行判断
            case R.id.radioMale:
                strGender = radioMale.getText().toString();
                break;
            case R.id.radioFemale:
                strGender = radioFemale.getText().toString();
                break;
        }
        // 获取兴趣
        StringBuilder builder = new StringBuilder();
        if (edt_travel.isChecked()) {
            builder.append(edt_travel.getText().toString() + " ");
        }
        if (edt_music.isChecked()) {
            builder.append(edt_music.getText().toString() + " ");
        }
        if (edt_food.isChecked()) {
            builder.append(edt_food.getText().toString() + " ");
        }
        String interest = builder.toString().trim();

        // 创建意图(参数1:起始组件;参数2:目标组件)
        Intent intent = new Intent(this, MainActivity.class);
        // 让意图携带数据
        intent.putExtra("username", username);
        intent.putExtra("password", password);
        intent.putExtra("telephone", telephone);
        intent.putExtra("mailbox", mailbox);
        intent.putExtra("strGender", strGender);
        intent.putExtra("interest",interest);
        // 按意图实现界面跳转
        startActivity(intent);
    }

    /**
     * 重置事件处理方法
     *
     */
    public void doCancel(View v) {
        edtUsername.setText("");
        radioMale.setChecked(false);
        radioFemale.setChecked(false);
        edt_travel.setChecked(false);
        edt_music.setChecked(false);
        edt_food.setText("");
    }
}
  • 编写注册信息界面的代码
package net.zs.register;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private TextView tvMessage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 利用布局资源文件设置用户界面
        setContentView(R.layout.activity_main);
        // 通过控件资源标识获得控件实例
        tvMessage = findViewById(R.id.tv_message);
        // 获取意图
        Intent intent = getIntent();
        // 判断意图是否为空
        if (intent != null) {
            // 获取意图携带的数据
            String username = intent.getStringExtra("username");
            String password = intent.getStringExtra("password");
            String telephone = intent.getStringExtra("telephone");
            String mailbox = intent.getStringExtra("mailbox");
            String strGender = intent.getStringExtra("strGender");
            String interest = intent.getStringExtra("interest");
            // 设置标签内容
            tvMessage.setText("用户名:" + username + "\n密码:" + password + "\n电话:" + telephone +
                    "\n邮箱:" + mailbox + "\n性别:" + strGender +"\n兴趣:" + interest);
        }
    }
}
  • 运行程序,查看效果

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值