IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android注册登录页面 -> 正文阅读

[移动开发]Android注册登录页面

需求

主题:网抑云
用户注册
(账号 密码 性别 爱好…)
(注册完成跳转到注册成功页面)
注册成功页面
(显示用户注册的详细信息)
(可以跳转到登录页面)
登录页面
(使用用户注册时的账号密码登录)
(进行判断)
登录成功页面
(欢迎XXX(用户注册时的昵称)先生/女士

分析

不能使用回车多行输入
账号(不可为空)
密码(不可为空)(隐藏的)
确认密码(比对)
昵称(不可为空)
性别(单选)
爱好(多选)
简介
简介可以为空,其他全部非空
inputType属性实现限制输入类型
点击注册 如果有空(吐司提示XXX不可为空) 从上到下提示
注册完毕之后:
跳转到注册成功页面

项目目录

在这里插入图片描述

.java

domain

JsonBean.java

package top.gaojc.app.domain;

import com.contrarywind.interfaces.IPickerViewData;

import java.util.List;

public class JsonBean implements IPickerViewData {

    private String name;
    private List<CityBean> city;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<CityBean> getCityList() {
        return city;
    }

    public void setCityList(List<CityBean> city) {
        this.city = city;
    }

    // 实现 IPickerViewData 接口,
    // 这个用来显示在PickerView上面的字符串,
    // PickerView会通过IPickerViewData获取getPickerViewText方法显示出来。
    @Override
    public String getPickerViewText() {
        return this.name;
    }


    public static class CityBean {

        private String name;
        private List<String> area;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public List<String> getArea() {
            return area;
        }

        public void setArea(List<String> area) {
            this.area = area;
        }
    }

}

UserInfo.java

package top.gaojc.app.domain;

public class UserInfo {

    // 账号
    public static String zhanghao;

    // 密码
    public static String mima;

    // 确认密码
    public static String queren;

    // 昵称
    public static String nicheng;

    // 性别
    public static String xingbie;

    // 爱好
    public static String aihao;

    // 简介
    public static String jianjie;


    public String getZhanghao() {
        return zhanghao;
    }

    public void setZhanghao(String zhanghao) {
        this.zhanghao = zhanghao;
    }

    public String getMima() {
        return mima;
    }

    public void setMima(String mima) {
        this.mima = mima;
    }

    public String getQueren() {
        return queren;
    }

    public void setQueren(String queren) {
        this.queren = queren;
    }

    public String getNicheng() {
        return nicheng;
    }

    public void setNicheng(String nicheng) {
        this.nicheng = nicheng;
    }

    public String getXingbie() {
        return xingbie;
    }

    public void setXingbie(String xingbie) {
        this.xingbie = xingbie;
    }

    public String getAihao() {
        return aihao;
    }

    public void setAihao(String aihao) {
        this.aihao = aihao;
    }

    public String getJianjie() {
        return jianjie;
    }

    public void setJianjie(String jianjie) {
        this.jianjie = jianjie;
    }

}

utils

GetJsonDataUtil.java

package top.gaojc.app.utils;

import android.content.Context;
import android.content.res.AssetManager;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class GetJsonDataUtil {
    public String getJson(Context context, String fileName) {
        StringBuilder stringBuilder = new StringBuilder();
        try {
            AssetManager assetManager = context.getAssets();
            BufferedReader bf = new BufferedReader(new InputStreamReader(
                    assetManager.open(fileName)));
            String line;
            while ((line = bf.readLine()) != null) {
                stringBuilder.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return stringBuilder.toString();
    }

}

Login.java

package top.gaojc.app;

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

import androidx.appcompat.app.AppCompatActivity;

import top.gaojc.app.domain.UserInfo;

public class Login extends AppCompatActivity {

    // 初始化
    Button login;

    EditText edt_account;

    EditText edt_password;

    // 用户注册时的账号密码
    String zhanghao;

    String mima;

    // 用户登录时的账号密码
    String account;

    String password;


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

        // 绑定
        login = findViewById(R.id.login);
        edt_account = findViewById(R.id.account);
        edt_password = findViewById(R.id.password);

        // 获取用户注册时的账号和密码
        UserInfo userInfo = new UserInfo();
        zhanghao = userInfo.getZhanghao();
        mima = userInfo.getMima();

        // 监听点击事件
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                // 获取用户登录时输入的账号密码
                account = edt_account.getText().toString();
                password = edt_password.getText().toString();

                // 判断用户注册时的账号密码和登录输入的账号密码是否一致
                if (zhanghao.equals(account) == true && mima.equals(password) == true){
                    // 登录成功 跳转登录成功页面
                    Intent intent = new Intent(Login.this,Welcome.class);
                    startActivity(intent);
                }else {
                    // 提示用户账号或密码错误
                    Toast.makeText(Login.this,"账号或密码错误",Toast.LENGTH_SHORT).show();
                }
            }
        });

    }

}

MainActivity.java

package top.gaojc.app;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.google.gson.Gson;

import org.json.JSONArray;

import java.util.ArrayList;

import top.gaojc.app.domain.JsonBean;
import top.gaojc.app.domain.UserInfo;
import top.gaojc.app.utils.GetJsonDataUtil;

public class MainActivity extends AppCompatActivity {

    // 初始化

    // 省市区联动
    private TextView mTxt;
    private ArrayList<JsonBean> options1Items = new ArrayList<>(); //省
    private ArrayList<ArrayList<String>> options2Items = new ArrayList<>();//市
    private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<>();//区

    // 账号
    EditText account;

    // 密码
    EditText password;

    // 确认密码
    EditText confirmPassword;

    // 昵称
    EditText username;

    // 性别 男
    RadioButton rb_man;

    // 性别 女
    RadioButton rb_woman;

    // 爱好 吃
    CheckBox eat;

    // 爱好 喝
    CheckBox drink;

    // 爱好 玩
    CheckBox play;

    // 爱好 乐
    CheckBox happy;

    // 简介
    EditText presentation;

    // 注册按钮
    Button register;


    // 结果

    // 账号
    String zhanghao;

    // 输入框 密码
    String mima;

    // 输入框 确认密码
    String queren;

    // 输入框 昵称
    String nicheng;

    // 给数字赋值 判断男女
    int gender;

    // 按钮 性别
    String xingbie;

    // 爱好
    String aihao;

    // 输入框 简介
    String jianjie;


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

        // 省市区联动方法
        initView();
        initData();

        // 绑定
        // 账号
        account = findViewById(R.id.edt_account);

        // 密码
        password = findViewById(R.id.edt_password);

        // 确认密码
        confirmPassword = findViewById(R.id.edt_confirmPassword);

        // 昵称
        username = findViewById(R.id.edt_username);

        // 性别
        rb_man = findViewById(R.id.rb_man);
        rb_woman = findViewById(R.id.rb_woman);

        // 爱好
        eat =  findViewById(R.id.cb_eat);
        drink = findViewById(R.id.cb_drink);
        play = findViewById(R.id.cb_play);
        happy = findViewById(R.id.cb_happy);

        // 简介
        presentation = findViewById(R.id.edt_presentation);

        // 注册按钮
        register = findViewById(R.id.btn_register);


        // 监听点击事件
        register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 获取账号
                zhanghao = account.getText().toString();

                // 获取密码
                mima = password.getText().toString();

                // 获取确认密码
                queren = confirmPassword.getText().toString();

                // 获取昵称
                nicheng = username.getText().toString();

                // 获取性别
                rb_woman.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        gender = 1;
                    }
                });

                if (gender == 1){
                    xingbie = "女";
                }else {
                    xingbie = "男";
                }

                // 获取爱好
                StringBuilder stringBuilder = new StringBuilder();
                if (eat.isChecked()){
                    stringBuilder.append("吃、");
                }
                if (drink.isChecked()){
                    stringBuilder.append("喝、");
                }
                if (play.isChecked()){
                    stringBuilder.append("玩、");
                }
                if (happy.isChecked()){
                    stringBuilder.append("乐");
                }

                // 获取字符串最后一个字符
                String str = stringBuilder.charAt(stringBuilder.length() - 1) + "";

                // 如果最后一个符号是、 则剪切掉
                if (str.equals("、")){
                    aihao = stringBuilder.substring(0,stringBuilder.length() - 1);
                }else {
                    aihao = stringBuilder.toString();
                }

                // 获取简介
                jianjie = presentation.getText().toString();


                // 账号密码昵称校验
                if (zhanghao.equals("") == false && zhanghao.length() != 0 &&
                        mima.equals("") == false && mima.length() != 0 && mima.equals(queren) == true &&
                        nicheng.equals("") == false && nicheng.length() != 0)
                {
                    // 数据存储
                    UserInfo userInfo = new UserInfo();
                    userInfo.setZhanghao(zhanghao);
                    userInfo.setMima(mima);
                    userInfo.setQueren(queren);
                    userInfo.setNicheng(nicheng);
                    userInfo.setXingbie(xingbie);
                    userInfo.setAihao(aihao);
                    userInfo.setJianjie(jianjie);

                    // 跳转
                    Intent intent = new Intent(MainActivity.this, Result.class);
                    startActivity(intent);

                } else if (zhanghao.equals("") == true || zhanghao.length() == 0){
                    Toast.makeText(MainActivity.this,"账号不允许为空!",Toast.LENGTH_SHORT).show();
                }else if (mima.equals("") == true || mima.length() == 0){
                    Toast.makeText(MainActivity.this,"密码不允许为空!",Toast.LENGTH_SHORT).show();
                } else if (mima.equals(queren) == false){
                    Toast.makeText(MainActivity.this,"两次密码不一致!",Toast.LENGTH_SHORT).show();
                }else if (nicheng.equals("") == true || nicheng.length() == 0){
                    Toast.makeText(MainActivity.this,"昵称不允许为空!",Toast.LENGTH_SHORT).show();
                }

            }
        });
    }


    private void initData() {
        /**
         * 注意:assets 目录下的Json文件仅供参考,实际使用可自行替换文件
         * 关键逻辑在于循环体
         * */
        String JsonData = new GetJsonDataUtil().getJson(this, "province.json");//获取assets目录下的json文件数据

        ArrayList<JsonBean> jsonBean = parseData(JsonData);//用Gson 转成实体

        /**
         * 添加省份数据
         * 注意:如果是添加的JavaBean实体,则实体类需要实现 IPickerViewData 接口,
         * PickerView会通过getPickerViewText方法获取字符串显示出来。
         */
        options1Items = jsonBean;

        for (int i = 0; i < jsonBean.size(); i++) {//遍历省份
            ArrayList<String> CityList = new ArrayList<>();//该省的城市列表(第二级)
            ArrayList<ArrayList<String>> Province_AreaList = new ArrayList<>();//该省的所有地区列表(第三级)

            for (int c = 0; c < jsonBean.get(i).getCityList().size(); c++) {//遍历该省份的所有城市
                String CityName = jsonBean.get(i).getCityList().get(c).getName();
                CityList.add(CityName);//添加城市
                ArrayList<String> City_AreaList = new ArrayList<>();//该城市的所有地区列表

                //如果无地区数据,建议添加空字符串,防止数据为null 导致三个选项长度不匹配造成崩溃
                if (jsonBean.get(i).getCityList().get(c).getArea() == null
                        || jsonBean.get(i).getCityList().get(c).getArea().size() == 0) {
                    City_AreaList.add("");
                } else {
                    City_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());
                }
                Province_AreaList.add(City_AreaList);//添加该省所有地区数据
            }
            //添加城市数据
            options2Items.add(CityList);
            //添加地区数据
            options3Items.add(Province_AreaList);
        }
    }


    private void initView() {
        mTxt = (TextView) findViewById(R.id.txt);

        mTxt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showPickerView();
            }
        });
    }

    private void showPickerView() {
        OptionsPickerView pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
            @Override
            public void onOptionsSelect(int options1, int options2, int options3, View v) {
                //返回的分别是三个级别的选中位置
                mTxt.setText(options1Items.get(options1).getPickerViewText() + "  "
                        + options2Items.get(options1).get(options2) + "  "
                        + options3Items.get(options1).get(options2).get(options3));

            }
        })
                .setTitleText("城市选择")
                .setTitleBgColor(Color.WHITE)//设置标题的背景颜色
                .setDividerColor(Color.BLACK)//设置分割线的颜色
                .setTextColorCenter(Color.BLACK) //设置选中项文字颜色
                .setContentTextSize(20)
                .build();
        pvOptions.setPicker(options1Items, options2Items, options3Items);//三级选择器
        pvOptions.show();
    }

    public ArrayList<JsonBean> parseData(String result) {//Gson 解析
        ArrayList<JsonBean> detail = new ArrayList<>();
        try {
            JSONArray data = new JSONArray(result);
            // 通过构造函数来获取
            Gson gson = new Gson();
            for (int i = 0; i < data.length(); i++) {
                JsonBean entity = gson.fromJson(data.optJSONObject(i).toString(), JsonBean.class);
                detail.add(entity);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return detail;
    }
}

Result.java

package top.gaojc.app;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import top.gaojc.app.domain.UserInfo;

public class Result extends AppCompatActivity {

    // 初始化
        // 返回值
    TextView result;

        // 登录按钮
    Button login;

    // 账号
    String zhanghao;

    // 密码
    String mima;

    // 昵称
    String nicheng;

    // 性别
    String xingbie;

    // 爱好
    String aihao;

    // 简介
    String jianjie;


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

        // 绑定
        result = findViewById(R.id.tv_result);

        login = findViewById(R.id.btn_login);

        // 用户信息对象
        UserInfo userInfo = new UserInfo();

        // 获取用户信息
        zhanghao = userInfo.getZhanghao();
        mima = userInfo.getMima();
        nicheng = userInfo.getNicheng();
        xingbie = userInfo.getXingbie();
        aihao = userInfo.getAihao();
        jianjie = userInfo.getJianjie();

        // 设置显示的数据
        result.setText("账号:" + zhanghao + "\n密码:" + mima + "\n昵称:" + nicheng + "\n性别:" + xingbie + "\n爱好:" + aihao + "\n简介:" + jianjie);

        // 监听事件
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Result.this, Login.class);
                startActivity(intent);
            }
        });
    }
}

Welcome.java

package top.gaojc.app;

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

import androidx.appcompat.app.AppCompatActivity;

import top.gaojc.app.domain.UserInfo;

public class Welcome extends AppCompatActivity {

    // 初始化
    TextView register;

    String nicheng;

    String xingbie;

    // 称谓 先生 or 女士
    String appellation;

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

        // 绑定
        register = findViewById(R.id.tv_register);

        // 获取用户的昵称和性别
        UserInfo userInfo = new UserInfo();
        nicheng = userInfo.getNicheng();
        xingbie = userInfo.getXingbie();

        // 判断男女 昵称后面跟称谓
        if (xingbie.equals("男")){
            appellation = "先生";
        }else {
            appellation = "女士";
        }

        // 输出内容的拼接
        String text = "欢迎" + nicheng + appellation + "!";

        // 打印
        register.setText(text);
    }
}

.xml

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"
    tools:context=".Login"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用户登录"
        android:layout_gravity="center"
        android:textSize="25sp"/>

    <TextView
        android:id="@+id/txt"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:gravity="center"
        android:layout_centerInParent="true" />

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="账号" />

        <EditText
            android:id="@+id/account"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:singleLine="true"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码" />

        <EditText
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"/>

    </LinearLayout>

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="登录"/>
</LinearLayout>

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"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用户注册"
        android:layout_gravity="center"
        android:textSize="25sp"/>

    <TextView
        android:id="@+id/txt"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:gravity="center"
        android:layout_centerInParent="true" />

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="账号" />

        <EditText
            android:id="@+id/edt_account"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:singleLine="true"/>

    </LinearLayout>

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

        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="密码" />

        <EditText
            android:id="@+id/edt_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="确认密码" />

        <EditText
            android:id="@+id/edt_confirmPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="昵称" />

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

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别"/>

        <RadioButton
            android:id="@+id/rb_man"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:checked="true"/>

        <RadioButton
            android:id="@+id/rb_woman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""/>

    </RadioGroup>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="爱好"/>

        <CheckBox
            android:id="@+id/cb_eat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""/>

        <CheckBox
            android:id="@+id/cb_drink"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />

        <CheckBox
            android:id="@+id/cb_play"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""/>

        <CheckBox
            android:id="@+id/cb_happy"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="简介" />

        <EditText
            android:id="@+id/edt_presentation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:singleLine="true"/>

    </LinearLayout>

    <Button
        android:id="@+id/btn_register"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="注册"
        android:layout_gravity="center"
        android:textSize="20sp"
        android:layout_marginTop="35dp"/>

</LinearLayout>

activity_result.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".Result">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="注册成功!"
        android:layout_above="@id/tv_result"
        android:layout_centerHorizontal="true"
        android:textColor="#00ff99"
        android:textSize="30sp"/>

    <!-- 返回内容-->
    <TextView
        android:id="@+id/tv_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"/>

    <Button
        android:id="@+id/btn_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_result"
        android:layout_centerHorizontal="true"
        android:text="去登录"/>

</RelativeLayout>

activity_result.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".Welcome">

    <TextView
        android:id="@+id/tv_register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="30sp"/>

</RelativeLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="top.gaojc.app">

    <application
        android:allowBackup="true"
        android:icon="@drawable/wyy"
        android:label="@string/app_name"
        android:roundIcon="@drawable/wyy"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Login"/>
        <activity android:name=".Result" />
        <activity android:name=".Welcome" />
        <activity android:name=".domain.UserInfo"/>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

页面效果

注册页面

请添加图片描述

注册成功页面

请添加图片描述

登录页面

请添加图片描述

登录成功页面

请添加图片描述

点击可自行下载

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:48:20  更:2021-09-22 14:49:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 11:17:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码