安卓实现登录与注册界面

使用Intent与Bundle传递数据

登录界面login.xml

在这里插入图片描述

1.使用Relativelayout相对布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="20dp"android:paddingTop="20dp"><TextViewandroid:id="@+id/tv_username"style="@style/intent_login_textview"android:text="@string/username"/><EditTextandroid:id="@+id/et_username"style="@style/intent_login_edittext"android:layout_toRightOf="@id/tv_username"android:hint="填写用户名" /><TextViewandroid:id="@+id/tv_password"style="@style/intent_login_textview"android:layout_below="@id/tv_username"android:text="@string/password"android:layout_marginTop="20dp"/><EditTextandroid:id="@+id/et_passsword"style="@style/intent_login_edittext"android:layout_below="@id/et_username"android:layout_toRightOf="@id/tv_password"android:hint="填写密码" /><Buttonandroid:id="@+id/btn_register"android:layout_marginTop="100dp"style="@style/intent_login_button"android:layout_marginLeft="40dp"android:text="注册"/><Buttonandroid:id="@+id/btn_login"android:layout_marginTop="100dp"android:layout_marginLeft="200dp"style="@style/intent_login_button"android:text="登录"/>
</RelativeLayout>

2.样式,themes.xml中

 <style name="intent_login_textview"><item name="android:layout_width">50dp</item><item name="android:layout_height">wrap_content</item><item name="textAllCaps">false</item><item name="android:textColor">@color/black</item><item name="android:textSize">15sp</item><item name="android:textStyle">normal</item></style><style name="intent_login_edittext"><item name="android:layout_width">match_parent</item><item name="android:layout_height">wrap_content</item><item name="textAllCaps">false</item><item name="android:textColor">@color/black</item><item name="android:textSize">10sp</item><item name="android:textStyle">normal</item></style><style name="intent_login_button"><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item><item name="textAllCaps">false</item><item name="android:textColor">@color/black</item><item name="android:textSize">20sp</item><item name="android:textStyle">normal</item></style>

LoginActivity.java

public class LoginActivity extends AppCompatActivity {private EditText et_password, et_username;private Button btn_register, btn_login;private String dq_name, dq_password;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);//设置Activity显示的布局et_password = findViewById(R.id.et_passsword);//获取布局中的控件对象et_username = findViewById(R.id.et_username);btn_login = findViewById(R.id.btn_login);btn_register = findViewById(R.id.btn_register);Btnlitener btnlistener = new Btnlitener();btn_login.setOnClickListener(btnlistener);btn_register.setOnClickListener(btnlistener);}private class Btnlitener implements View.OnClickListener {@Overridepublic void onClick(View v) {Intent intent;switch (v.getId()) {case R.id.btn_register:String username = et_username.getText().toString();String password = et_password.getText().toString();intent = new Intent(LoginActivity.this, RegisterActivity.class);intent.putExtra("username", username);intent.putExtra("password", password);startActivity(intent);break;case R.id.btn_login:String username1 = et_username.getText().toString();String password1 = et_password.getText().toString();intent = getIntent();Bundle bundle = intent.getExtras();dq_name = bundle.getString("dq_name");dq_password = bundle.getString("dq_password");if (username1.equals("")||password1.equals("")){Toast.makeText(LoginActivity.this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();}else {if (username1.equals(dq_name) && (password1.equals(dq_password))) {startActivity(new Intent(LoginActivity.this, NextActivity.class));} else {Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();}}break;}}}}

register注册.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="20dp"android:paddingTop="20dp"><TextViewandroid:id="@+id/tv_username"style="@style/intent_login_textview"android:text="@string/username"/><EditTextandroid:id="@+id/et_username"style="@style/intent_login_edittext"android:layout_toRightOf="@id/tv_username"android:hint="填写用户名" /><TextViewandroid:id="@+id/tv_password"style="@style/intent_login_textview"android:layout_below="@id/tv_username"android:text="@string/password"android:layout_marginTop="20dp"/><EditTextandroid:id="@+id/et_passsword"style="@style/intent_login_edittext"android:layout_below="@id/et_username"android:layout_toRightOf="@id/tv_password"android:hint="填写密码" /><TextViewandroid:id="@+id/tv_repassword"style="@style/intent_login_textview"android:layout_below="@id/tv_password"android:text="@string/repassword"android:layout_marginTop="20dp"/><EditTextandroid:id="@+id/et_repasssword"style="@style/intent_login_edittext"android:layout_below="@id/et_passsword"android:layout_toRightOf="@id/tv_repassword"android:hint="再次填写密码" /><Buttonandroid:id="@+id/btn_confirm"android:layout_marginTop="150dp"style="@style/intent_login_button"android:layout_marginLeft="40dp"android:text="确认"/><Buttonandroid:id="@+id/btn_cancel"android:layout_marginTop="150dp"android:layout_marginLeft="200dp"style="@style/intent_login_button"android:text="取消"/>
</RelativeLayout>

注册界面.java

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {private EditText et_username, et_password, et_repassword;private Button btn_cancel, btn_confirm;private int count;private long t;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);et_username = findViewById(R.id.et_username);et_password = findViewById(R.id.et_passsword);et_repassword = findViewById(R.id.et_repasssword);btn_cancel = findViewById(R.id.btn_cancel);btn_confirm = findViewById(R.id.btn_confirm);btn_cancel.setOnClickListener(this::onClick);btn_confirm.setOnClickListener(this::onClick);Intent intent = getIntent();String username = intent.getStringExtra("username");String password = intent.getStringExtra("password");et_username.setText(username);et_password.setText(password);et_repassword.setText(password);t = System.currentTimeMillis();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_cancel:et_repassword.setText("");et_password.setText("");et_username.setText("");long t1 = System.currentTimeMillis();if (t1 - t < 2000) {startActivity(new Intent(RegisterActivity.this, LoginActivity.class));}else {t = System.currentTimeMillis();Toast.makeText(RegisterActivity.this, "连续按两次回到登录界面", Toast.LENGTH_LONG).show();}break;case R.id.btn_confirm:if ((!"".equals(et_username.getText().toString())) && (!"".equals(et_password.getText().toString())) && (!"".equals(et_repassword.getText().toString()))) {if (et_password.getText().toString().equals(et_repassword.getText().toString())) {Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_LONG).show();Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);String dq_name = et_username.getText().toString();String dq_password = et_password.getText().toString();Bundle bundle = new Bundle();bundle.putString("dq_name", dq_name);bundle.putString("dq_password", dq_password);intent.putExtras(bundle);startActivity(intent);} else {Toast.makeText(RegisterActivity.this, "两次密码不一致", Toast.LENGTH_LONG).show();}} else {Toast.makeText(RegisterActivity.this, "不能为空", Toast.LENGTH_LONG).show();}break;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓Activity与intent跳转

Activity生命周期 Activity启动模式 Intent跳转 _________startActivity() 1.Intent intentnew Intent(A.this,B.class); startActivity(intent); 2.startActivity(new Intent(A.this,B.class)); _________startActivityForResult() Intent intentnew Intent(A.this,B.class…

Android WebView 使用漏洞

目录一、类型二、具体分析2.1、WebView任意代码执行漏洞2.1.1、addJavascriptInterface 接口引起远程代码执行漏洞漏洞产生原因解决方案关于该方法的其他细节总结2.1.2、searchBoxJavaBridge_接口引起远程代码执行漏洞漏洞产生原因解决方案2.1.3、accessibility和 accessibilit…

Android Studio 查看页面布局层次结构

Android Studio有个可以查看手机上app页面布局层次结构的工具。可以协助我们对布局进行优化&#xff0c;去掉没有必要的节点等&#xff0c;通过这个工具可以清晰的看见页面整个结构&#xff1b;废话少说直接上图&#xff0c;再说过程。 这就是我们想要看到的&#xff0c;每个节…

Java web后端 第一章框架搭建

Redis 通用Mapper 通用Mapper->MyBatis动态SQL封装包,增删改查 0 SQL语句 PageHelper PageHelper–>实现分页操作,不需要limit,直接使用静态方法 电商系统技术特点 分布式(数据很多,一台电脑存储一部分数据) 高并发,集群(并发量很高,后台不只一个电脑) ,海量数据 主…

android--地图定位打卡

获取位置信息 1)位置信息 GPS卫星定位,在室外适用 基站(3个基站交叉,锁定手机位置)–基站定位不平均,有些地方实现不了3点定位 网络定位–通过手机IP地址,去锁定位置(消耗流量,对网络有要求) 谷歌地图的大致实现思路(通用) 2)实现定位功能的重要类 在百度地图和高德地图中不…

android--在命令行中生成Android的数字证书keystore文件

标题 生成 密钥口令为 13458977480 密钥库口令为 13458977480 存放位置 查看证书的相关资料

IDEA 创建 SpringBoot 项目

目录一、新建Springboot项目第一步&#xff1a;新建一个Springboot项目第二步&#xff1a;选择项目模板第三步&#xff1a;设置项目配置第四步&#xff1a;设置项目依赖第五步&#xff1a;设置项目名称及路径第六步&#xff1a;创建完成二、测试及运行1、测试代码2、设置默认端…

VC++软件

一个main fatal error LNK1169: 找到一个或多个多重定义的符号–报错 一个项目即一个程序&#xff0c;多个文件只能有一个main函数 删除掉多余的main 控制台按enter键闪退 在代码中加上 #include<stdlib.h> getchar();//让控制台停留 system("pause");//让…

IDEA 将 SpringBoot 项目打包成jar

目录一、打包配置1、File -> Project Structure2、Project Structure3、设置启动类及META-INF4、设置打包输出目录二、打包1、Build -> Artifacts2、Build三、查看打包文件四、运行新建SpringBoot项目&#xff1a;IDEA 创建 SpringBoot 项目 一、打包配置 1、File -> …

如何查看软连接,以及相关注意事项

使用命令 ls -il 图片显示 参考链接 Linux 命令之软连接详解Linux软连接 查看/创建/删除

Git SSH key配置

一、检查本地Git配置 用如下命令&#xff08;如未特别说明&#xff0c;所有命令均默认在Git Bash工具下执行&#xff09;检查一下用户名和邮箱是否配置&#xff08;github支持我们用用户名或邮箱登录&#xff09;&#xff1a; git config --global --list 显示信息如下&#…

HTTPS 工作原理

一、简介 HTTPS对于客户端开发人员来说并没有什么需要特别注意的地方&#xff0c;因为代码和写HTTP请求时并没有什么两样。但也正是因为这个原因&#xff0c;导致许多客户端开发人员对HTTPS并不了解&#xff0c;只知道它是安全的加密网络传输&#xff0c;对其具体的工作原理却一…

解决VM虚拟机中ubuntu系统上不了网的问题

最简单的方式 关闭虚拟机在对应的虚拟机上右键&#xff0c;点击设置&#xff0c;找到网络适配器&#xff0c;点击移除&#xff0c;再次点击添加&#xff0c;将网络适配器再次添加回来&#xff0c;点击确定重启虚拟机如果第一种方式解决不了问题&#xff0c;请使用第二种方式 …

Android Glide图片加载框架(一)基本用法

文章目录一、前言二、简介三、基本用法第一步&#xff1a;调用 Glide.with() 方法创建加载图片的实例第二步&#xff1a;调用 load() 方法指定待加载的图片资源第三步&#xff1a;调用 into() 方法绑定显示控件总结四、扩展用法1、占位图2、指定图片格式3、指定图片大小Android…

操作系统 进程 学习以及思考

进程管理逻辑图 将多个程序拷贝到进程中&#xff0c;占用内存&#xff0c;如图扇形区域&#xff0c;当酷狗进程需要资源的时候&#xff0c;会通过I/O子系统取用资源的过程中&#xff0c;会放弃对cpu的占用&#xff0c;cpu就会处理别的进程&#xff0c;因此提高了cpu的利用率&am…

Android Glide图片加载框架(二)源码解析之with()

文章目录一、前言二、如何阅读源码三、源码解析1、with()Android Glide图片加载框架系列文章 Android Glide图片加载框架&#xff08;一&#xff09;基本用法 Android Glide图片加载框架&#xff08;二&#xff09;源码解析之with() Android Glide图片加载框架&#xff08;二…

计算机操作系统生产者和消费者模型的简单介绍

同步互斥小口诀 画图理解题目判断题目类型分析进程数目 填写进程模板补充基本代码(伪代码)补充PV代码检查调整代码 注意事项 代码是一步一步写出来的&#xff0c;代码是反复调整写出来的60%是生产者和消费者模型30%是读者和写者的模型 生产者和消费者 例子1 妈妈每次放放一…

Android Glide图片加载框架(二)源码解析之load()

文章目录一、前言二、源码分析1、load()Android Glide图片加载框架系列文章 Android Glide图片加载框架&#xff08;一&#xff09;基本用法 Android Glide图片加载框架&#xff08;二&#xff09;源码解析之with() Android Glide图片加载框架&#xff08;二&#xff09;源码…

计算机操作系统读者和写者模型的简单介绍以及思考

读者和写者 读写两组进程&#xff0c;共享一个文件&#xff0c;多个读者可以同时访问文件&#xff0c;多个写者不可以同时访问文件&#xff0c;写者和读者也不可以同时访问文件共享读&#xff1b;独占写特征:1,资源被谁占有&#xff1b;2&#xff0c;写者改变资源&#xff0c;…

Android Glide图片加载框架(二)源码解析之into()

文章目录一、前言二、源码解析1、into(ImageView)2、GlideContext.buildImageViewTarget()3、RequestBuilder.into(Target,RequestListener,RequestOptions);4、RequestBuilder.buildRequest()5、SingleRequest.obtain()6、isEquivalentTo()、isSkipMemoryCacheWithCompletePre…