Android Studio 赛博朋克风注册登录app_赛博朋克app id-程序员宅基地

技术标签: android-studio  android  android studio  

结果展示:

主界面:
在这里插入图片描述


登录界面:

在这里插入图片描述


注册界面:
在这里插入图片描述

一、设计要求:

①主界面供用户选择登录/注册 并展示用户昵称、用户ID

②登陆界面,点击登录后查询用户输入用户名与密码是否与内设用户名密码一致。
一致消息提示登陆成功
不一致消息提示登陆失败
未填写时以消息提示/对话框方式提醒用户

③注册界面,点击注册后跳转至主界面显示用户信息
未填写时消息提示

二、设计框架:

主界面:

设置请求码

 private static final int REQUEST_REGISTER_CODE = 1;
 private static final int REQUEST_LOGIN_CODE = 2;

switch语句设置跳转

 switch (view.getId()) {
    
            case R.id.btn_main_login:
              ....
                break;
            case R.id.btn_main_register:
              ....
                break;

重写onActivityResult方法:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    
        super.onActivityResult(requestCode, resultCode, intent);
        if (intent == null) {
    
          ..
        }
        switch (requestCode) {
    
            case REQUEST_REGISTER_CODE:
                if (resultCode== 11) {
    
                ...
                } else {
    
           ...
                }
                break;
            case REQUEST_LOGIN_CODE :
                if(resultCode==21){
    
                ...
                }else {
    
                   ...
                }
                default: 
        }
    }

登录界面:

 if (userId.equals("xiaoming") && passwd.equals("123456")) {
    
                 ...
                    setResult(21, intent);
                } else {
    
                    setResult(20, intent);
                }
                finish();

注册界面:

    btnRegister.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View view) {
    
          ...
            setResult(11,intent);
            finish();
        }
    });

三、布局界面:

主界面:

在这里插入图片描述


登陆界面:

在这里插入图片描述


注册界面:

在这里插入图片描述

四、Java代码:

MainActivity.java:

package com.example.unit5_4log_reg;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
    private Button btnLogin, btnRegister;
    private ImageView ivLogin;
    private TextView tvUsername, tvUserId;
    private static final int REQUEST_REGISTER_CODE = 1;
    private static final int REQUEST_LOGIN_CODE = 2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnLogin = findViewById(R.id.btn_main_login);
        btnRegister = findViewById(R.id.btn_main_register);
        ivLogin = findViewById(R.id.iv_login);
        tvUserId = findViewById(R.id.tv_main_userid);
        tvUsername = findViewById(R.id.tv_main_username);
        btnLogin.setOnClickListener(this);
        btnRegister.setOnClickListener(this);
    }


    @Override
    public void onClick(View view) {
    
        Intent intent = new Intent();
        switch (view.getId()) {
    
            case R.id.btn_main_login:
                intent.setClass(this, activity_login.class);
                startActivityForResult(intent, REQUEST_LOGIN_CODE);
                break;
            case R.id.btn_main_register:
                intent.setClass(this, activity_register.class);
                startActivityForResult(intent, REQUEST_REGISTER_CODE);
                break;
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    
        super.onActivityResult(requestCode, resultCode, intent);
        if (intent == null) {
    
            return;
        }
        switch (requestCode) {
    
            case REQUEST_REGISTER_CODE:
                if (resultCode== 11) {
    
                    tvUserId.setText(intent.getStringExtra("userId"));
                    tvUsername.setText(intent.getStringExtra("userName"));
                    ivLogin.setImageResource(R.drawable.logsucceed);
                    Toast.makeText(this, "注册成功",Toast.LENGTH_SHORT).show();
                } else {
    
                    Toast.makeText(this, "注册失败",Toast.LENGTH_SHORT).show();
                }
                break;
            case REQUEST_LOGIN_CODE :
                if(resultCode==21){
    
                    tvUserId.setText(intent.getStringExtra("userId"));
                    tvUsername.setText(intent.getStringExtra("userName"));
                    ivLogin.setImageResource(R.drawable.logsucceed);
                    Toast.makeText(this, "登录成功",Toast.LENGTH_SHORT).show();
                }else {
    
                    Toast.makeText(this, "登录失败",Toast.LENGTH_SHORT).show();
                }
                default:
                    Toast.makeText(this, "操作失败",Toast.LENGTH_SHORT).show();

        }
    }

}


activity_login.java:

package com.example.unit5_4log_reg;

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;

public class activity_login extends AppCompatActivity {
    
    private EditText etUserid, etPasswd;
    private Button btnLgoin2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        etPasswd = findViewById(R.id.et_login_passwd);
        etUserid = findViewById(R.id.et_login_userid);
        btnLgoin2 = findViewById(R.id.btn_login);
        btnLgoin2.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
    
                String userId = etUserid.getText().toString().trim();
                String passwd = etPasswd.getText().toString().trim();
                Intent intent = new Intent();
                if (userId.equals("xiaoming") && passwd.equals("123456")) {
    
                    intent.putExtra("userId", userId);
                    intent.putExtra("userName", "小明");
                    setResult(21, intent);
                }else if (userId.length()== 0| passwd.length()==0){
    
                    Toast.makeText(activity_login.this,"请检查是否填写完全部信息!!",Toast.LENGTH_SHORT).show();
                }
                else {
    
                    setResult(20, intent);
                }
                finish();
            }
        });
    }
}


activity_register.java:

package com.example.unit5_4log_reg;

import androidx.appcompat.app.AppCompatActivity;

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

public class activity_register extends AppCompatActivity {
    
    private EditText etUserId, etPasswd,etUsername;
    private Button btnRegister;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        etUserId=findViewById(R.id.reg_userid);
        etUsername  =findViewById(R.id.reg_username);
    btnRegister=findViewById(R.id.btn_register);
    btnRegister.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View view) {
    

            Intent intent = new Intent();
            String userId = etUserId.getText().toString().trim();
            String passwd = etPasswd.getText().toString().trim();
            intent.putExtra("userId",userId);
            intent.putExtra("userName",passwd);
            if (userId.length()== 0| passwd.length()==0){
    
                Toast.makeText(activity_register.this,"请检查是否填写完全部信息!",Toast.LENGTH_SHORT).show();
            }
            setResult(11,intent);
            finish();
        }
    });
    }


}


五、资源文件:

Background
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

更多赛博朋克风格高清壁纸

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_33168558/article/details/122389050

智能推荐

c语言数组的排序递归,C语言:用递归的方式对数组排序-程序员宅基地

文章浏览阅读1.1k次。原题如下:编写程序,要求用户录入一串整数(把这串整数存储在数组中),然后通过调用selection_sort函数来排列这些整数。在给定n个元素的数组后,election_sort函数必须做下列工作:搜索数组找出最大的元素,然后把它移到数组的最后面;递归的调用函数本身对前面的n-1个数组元素进行排序。下面是我自己写的程序:(运行结果不对,求大神指导!!!)#include #define N 8in..._c语音递归n从高到低排序

ElasticSearch亿级数据毫秒查询实现_亿级数据模糊查询用什么数据库-程序员宅基地

文章浏览阅读6.1k次,点赞5次,收藏12次。面临问题:很多时候数据量大了,特别是有几亿条数据的时候,可能你会发现,跑个搜索怎么一下 5~10s。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。说实话,ES 性能优化是不可能随手调一个参数,就可以万能的应对所有的性能慢的场景。也许有的场景是你换个参数,或者调整一下语法,就可以搞定,但是绝对不是所有场景都可以这样。性能优化:Filesystem Cache你往 ES..._亿级数据模糊查询用什么数据库

Python量化交易学习笔记(35)——backtrader多股回测避坑2_indexerror: array assignment index out of range-程序员宅基地

文章浏览阅读6.8k次。本文继续记录多股回测时遇到的异常情况。坑描述backtrader在读取日线数据时,会自动给date数据添加“时:分:秒.毫秒(23:59:59.999990)”信息。而通常用户在指定回测周期的开始和结束日期时,只会精确到日,时分秒信息会被backtrader默认以0补全。由于上述两个事实的存在,假如用户指定回测周期的结束日期有日线数据(由于非交易日、停盘等原因,可能没有日线数据),那么在backtrader中,回测周期的结束时间就会被设定为该日的00:00:00,而backtrader读_indexerror: array assignment index out of range

检索之 乘积量化(Product Quantization)_乘积量化检索-程序员宅基地

文章浏览阅读1.9k次。本文转载自:https://www.cnblogs.com/mafuqiang/p/7161592.html乘积量化1。简介  乘积量化(PQ)算法是和VLAD算法是由法国INRIA实验室一同提出来的,为的是加快图像的检索速度,所以它是一种检索算法,在矢量量化(Vector Quantization,VQ)的基础上发展而来,虽然PQ不算是新算法,但是这种思想还是挺有用处的,本文没有添加公式。  它..._乘积量化检索

样本熵(Python实现)_样本熵电池代码-程序员宅基地

文章浏览阅读6.2k次,点赞8次,收藏39次。1. 基本概念1.1 熵熵原本是一个热力学概念,是用来描述热力学系统混乱(无序)程度的度量。在信息论建立之后,关于上的概念和理论得到了发展。作为衡量时间序列中新信息发生率的非线性动力学参数,熵在众多的科学领域得到了应用。八十年代最常用的熵的算法是K-S熵及由它发展来的E-R熵,但这两种熵的计算即使对于维数很低的混沌系统也需要上万点的数据,而且它们对于噪声很敏感,时间序列叠加了随机噪声后这两种熵的计算可能不收敛。1.2 近似熵近似熵(APEN, Aproximate Entropy),是由Pincus_样本熵电池代码

BeanFactory和FactoryBean以及ApplicationContext的区别_beanfactory与factorybean和applicationcontext的区别-程序员宅基地

文章浏览阅读932次。BeanFactoryBeanFactory是IOC最基本的容器,负责生产和管理bean,它在为其他具体的IOC容器提供了最基本的规范,例如XmlBeanFactory、ApplicationContext等具体的挺起都实现了BeanFactory,再在其基础上附加了其他功能BeanFactory源码package org.springframework.beans.factory; ..._beanfactory与factorybean和applicationcontext的区别

随便推点

「Arm Arch」 虚拟化微架构_hypervisor arm-程序员宅基地

文章浏览阅读280次。全文3000字,预计阅读时长:8分钟适用于从事ARM软硬件设计、开发、调试的工程师、教师以及学生对于大部分开发者来讲,ARM架构知识一直存放于盲盒之中,知之甚少;而ARM架构知识是ARM结构化知识中非常关键的一部分,它的缺失,会导致我们对于问题的系统化思考难以进行。所以增设了《ARM架构知多少-A系列》专栏来和大家一起学习ARM架构,完善知识结构,拓展系统思考边界。_hypervisor arm

【Xilinx】基于DMA的adc读取_adc数据长度为什么是1920-程序员宅基地

文章浏览阅读1.1k次。硬件环境:ZYNQ7000软件环境:petalinux2018.2 xilinx_vivado_sdk2018.2学习例程:1、DMA初始化1)定义变量//定义ioctrl的命令#define AXI_ADC_IOCTL_BASE 'W'#define AXI_ADC_SET_SAMPLE_NUM _IO(AXI_ADC_IOCTL_BASE, 0)#define AXI_ADC_SET_DMA_LEN_..._adc数据长度为什么是1920

审计日志在分布式系统中的应用_审计日志定义-程序员宅基地

文章浏览阅读5.4k次,点赞3次,收藏9次。前言分布式系统的执行环境往往是异常复杂的,很多情况涉及到多节点间的消息通信。相比较于单节点系统而言,分布式系统在问题追踪,排查方面显然也复杂很多。那么这个时候,在分布式系统中,增加哪些类型的日志数据,来帮助我们发现和定位问题呢?答案就是我们今天将要阐述的审计日志(Audit log)。审计日志的概念很多人可能在想这样一个问题:同样是日志,审计日志和普通的日志,区别在于哪里呢?审计日志,..._审计日志定义

conda虚拟环境总结与解读_conda 环境-程序员宅基地

文章浏览阅读7k次,点赞19次,收藏54次。csdn上有很多关于conda的文章,但是一直没有一个宏观一些的文章,我将从宏观角度出发,对文章进行一个整合,解读,将新同学从conda环境入门到配置,应用全流程进行解读。当然,这篇文章因为是宏观一些,可能很多同学不能一次性看懂,没关系,这个可以反复看,在不同阶段都可以提供帮助。......_conda 环境

HashMap与TreeMap的排序以及四种遍历方式_treehash的遍历方法-程序员宅基地

文章浏览阅读593次。一、Map概述1、Map是将键映射到值( key-value )的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。2、Map与Collection的区别(1)Map 是以键值对的方式存储元素,键唯一,值可以重复。(2)Collection存储的是单列元素,子接口Set元素唯一,子接口List可以重复。(3)Map的数据结构针对键有效,跟值无关..._treehash的遍历方法

K8S调度机制和Pod基本故障排查_pod崩溃一般怎么排查-程序员宅基地

文章浏览阅读704次。目录一、调度约束过程解析1.1、调度方式1.2、示例1 nodeName1.3、示例2 nodeSelector二、故障排除2.1、故障现象2.2、排查思路一、调度约束过程解析1、首先,用户可以通过kubectl命令或者dashborad、API调用的方式(用作开发)来创建资源,和管理资源(Kubernetes通过watch的机制进行每个组件的协作,每个组件之间的设计实现了解耦)2、用户提交创建资源的请求给API Server,API Server将创建资源的元信息(属性信息)写入到etcd中,et_pod崩溃一般怎么排查