Android studio登陆注册的实现及介绍

  • 前言
    • 设计思路
    • 效果图
    • 登陆模块
    • 注册模块
    • 数据库模块
    • 去除顶部标题
    • 总结与补充

前言

大家好!我是oy,今天给大家带来Android studio登陆注册的实现及介绍,第一次写博客,请见谅。

设计思路

  1. 创建好activity并进行页面设计;
  2. 创建用户类和数据库类;
  3. 完善登陆和注册java代码;
  4. 去掉头顶的标题栏,end;

效果图

登陆模块

登陆界面代码片.
布局代码很简单的自己看吧

<?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="@color/purple_200"android:orientation="vertical"tools:context=".MainActivity"><ImageViewandroid:layout_marginTop="60dp"android:layout_gravity="center_horizontal"android:layout_width="200dp"android:layout_height="200dp"android:background="@drawable/welcome"/><RelativeLayoutandroid:layout_marginTop="50dp"android:layout_gravity="center_horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"><EditTextandroid:id="@+id/username"android:lines="1"android:imeOptions="actionNext"android:paddingLeft="40dp"android:gravity="left|center"android:layout_width="200dp"android:layout_height="45dp"android:hint="用户名"android:textSize="16sp"android:textColor="@color/white"/></RelativeLayout><RelativeLayoutandroid:layout_marginTop="20dp"android:layout_gravity="center_horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"><EditTextandroid:id="@+id/password"android:lines="1"android:imeOptions="actionNext"android:paddingLeft="40dp"android:gravity="left|center"android:layout_width="200dp"android:layout_height="45dp"android:hint="密码"android:textSize="16sp"android:textColor="@color/white"/></RelativeLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginTop="20dp"android:orientation="horizontal"><Buttonandroid:id="@+id/login_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="登陆"android:textColor="@color/white"android:textSize="18sp"android:gravity="center" /><Buttonandroid:id="@+id/register_button"android:layout_marginLeft="80dp"android:text="注册"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@color/white"android:textSize="18sp"android:gravity="center" /></LinearLayout></LinearLayout>

MainActivity.java代码片.

package com.coolweather.login;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import org.w3c.dom.Text;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {private MyDatabaseHelper myDatabaseHelper;private Button btnLogin,btnRegister;private EditText etAccount,etPassword;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnLogin = findViewById(R.id.login_button);btnRegister = findViewById(R.id.register_button);etAccount = findViewById(R.id.username);etPassword = findViewById(R.id.password);btnRegister.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this,RegisterActivity.class);startActivity(intent);finish();}});btnLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String account = etAccount.getText().toString().trim();String password = etPassword.getText().toString().trim();if (!TextUtils.isEmpty(account) && !TextUtils.isEmpty(password)) {ArrayList<User> data = myDatabaseHelper.getAllDATA();boolean userdata = false;for (int i = 0; i < data.size(); i++) {User user= data.get(i);   //可存储账号数量if (account.equals(user.getName()) && password.equals(user.getPassword())) {userdata = true;break;} else {userdata = false;}}if (userdata){Toast.makeText(MainActivity.this,"登陆成功!",Toast.LENGTH_LONG).show();Intent intent = new Intent(MainActivity.this,HomeActivity.class);startActivity(intent);finish();}else{Toast.makeText(MainActivity.this,"用户名或密码错误!",Toast.LENGTH_LONG).show();}}else {Toast.makeText(MainActivity.this,"用户名或密码不能为空!",Toast.LENGTH_LONG).show();}}});myDatabaseHelper = new MyDatabaseHelper(MainActivity.this);}
}

注册模块

RegisterActivity.java代码片.

package com.coolweather.login;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {private MyDatabaseHelper myDatabaseHelper;private Button btnRegister,btnBack;private EditText etAccount, etPass, etSex;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);etAccount = findViewById(R.id.register_username);etPass=findViewById(R.id.register_password);etSex=findViewById(R.id.register_sex);btnRegister=findViewById(R.id.register2_button);btnBack=findViewById(R.id.back_button);btnRegister.setOnClickListener(this);btnBack.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(RegisterActivity.this,MainActivity.class);startActivity(intent);finish();}});myDatabaseHelper = new MyDatabaseHelper(RegisterActivity.this);}@Overridepublic void onClick(View v) {String name = etAccount.getText().toString().trim();String pass = etPass.getText().toString().trim();String sex = etSex.getText().toString().trim();if(!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(pass)&&!TextUtils.isEmpty(sex)){myDatabaseHelper.add(name,pass,sex);Intent intent1 = new Intent(RegisterActivity.this,MainActivity.class);startActivity(intent1);finish();Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_SHORT).show();}else {Toast.makeText(RegisterActivity.this,"信息不完备,注册失败",Toast.LENGTH_SHORT).show();}Toast.makeText(RegisterActivity.this,"注册成功!",Toast.LENGTH_LONG).show();myDatabaseHelper.add(name,pass,sex);Intent intent = new Intent(RegisterActivity.this,MainActivity.class);startActivity(intent);finish();}}

注册界面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=".RegisterActivity"android:orientation="vertical"android:background="@color/purple_200"><TextViewandroid:layout_marginTop="100dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center"android:text="请准确输入信息"android:textColor="@color/white"android:textSize="30dp"android:gravity="center" /><LinearLayoutandroid:layout_marginTop="100dp"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><EditTextandroid:id="@+id/register_username"android:layout_gravity="center"android:lines="1"android:imeOptions="actionNext"android:paddingLeft="40dp"android:gravity="left|center"android:layout_width="200dp"android:layout_height="45dp"android:hint="用户名"android:textSize="15sp"android:textColor="@color/white"/><EditTextandroid:id="@+id/register_password"android:layout_marginTop="20dp"android:layout_gravity="center"android:lines="1"android:imeOptions="actionNext"android:paddingLeft="40dp"android:gravity="left|center"android:layout_width="200dp"android:layout_height="45dp"android:hint="密码"android:textSize="15sp"android:textColor="@color/white"/><EditTextandroid:id="@+id/register_sex"android:layout_marginTop="20dp"android:layout_gravity="center"android:lines="1"android:imeOptions="actionNext"android:paddingLeft="40dp"android:gravity="left|center"android:layout_width="200dp"android:layout_height="45dp"android:hint="性别"android:textSize="15sp"android:textColor="@color/white"/><Buttonandroid:id="@+id/register2_button"android:layout_gravity="center"android:layout_marginTop="20dp"android:text="注册"android:layout_width="200dp"android:layout_height="wrap_content"android:textColor="@color/white"android:textSize="18sp"android:gravity="center" /><Buttonandroid:id="@+id/back_button"android:layout_gravity="center"android:layout_marginTop="20dp"android:text="返回"android:layout_width="200dp"android:layout_height="wrap_content"android:textColor="@color/white"android:textSize="18sp"android:gravity="center" /></LinearLayout></LinearLayout>

数据库模块

创建用户类
User.java代码片.

package com.coolweather.login;public class User {private  int id;private  String name;private  String password;private  String sex;public User(String name, String password, String sex){super();this.name = name;this.password = password;this.sex = sex;}public  int getId() {return  id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex(){return sex;}public void setSex(String sex){this.sex = sex;}@Overridepublic String toString() {return "User{id ="+ id + ", name = "+ name +",password ="+password +",sex ="+sex +"}";}
}

使用数据库创建MyDatabaseHelper,创建用户表
MyDatabaseHelper.java代码片.

public class MyDatabaseHelper extends SQLiteOpenHelper {private SQLiteDatabase db;public static final String CREATE_User = "create table user ("+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "+ "name TEXT, "+ "password TEXT,"+ "sex TEXT)";public MyDatabaseHelper(@Nullable Context context) {super(context, "db_test", null, 1);db = getReadableDatabase();}

去除顶部标题

去theres.xml文件中更改,如下代码片.

   <style name="Theme.Login" parent="Theme.MaterialComponents.DayNight.NoActionBar">

总结与补充

主要介绍注册模块,登录模块,数据库模块。使用了本地的sqlite数据库保存用户数据,实现用户注册,可以联系讨论,完整源码公众号【勤奋的oyoung】发送【登录demo】自取。

Android studio登陆注册的实现及介绍相关推荐

  1. android 继承类图,Android Studio中绘制UML类图介绍

    Android Studio中绘制UML类图介绍 Android Studio中绘制UML类图介绍 动机 最近开始阅读项目源码,从其中一个模块开始看,奈何大项目中的一个模块,对于萌新而言,也太过于复杂 ...

  2. Android Studio CPU profiler性能分析工具介绍和使用详解

    Android Studio CPU profiler性能分析工具介绍和使用详解 CPU profiler介绍 Android Studio CPU 性能剖析器可实时检查应用的 CPU 使用率和线程活 ...

  3. Android Studio之gradle的配置与介绍

    1.gradle的简单介绍 Gradle是可以用于Android开发的新一代的Build System,也是Android Studio默认的build工具.其实Gradle脚本是基于一种JVM语言- ...

  4. android studio 登陆ui界面设计

    一.在activity_mian布局中设计,此处用RelativeLayout控件,功能是实现滑动功能,可上下也可左右,按需求设计.以下是代码部分 <?xml version="1.0 ...

  5. 怎么升级Android Studio版本,Android Studio更新的四种版本介绍

    Android Studio在更新版本时,会有让选择升级源,如下: 默认情况下选择的是Stable Channel 这几个Channel的版本是有一些差异的: 在Android Studio下载官网上 ...

  6. android用户头像保存,Android的登陆注册(sharedpreferences和SQLite保存以及头像上传显示...

    [实例简介] ①该资源中片段代码截取于网上,特别感谢网上的大神 ②该Demo是一个android的简单注册登录,包括: ∷SQLite的注册数据保存 ∷注册登录数据的shakeAnimation验证 ...

  7. Android简易登陆注册逻辑

    activity_login <?xml version="1.0" encoding="utf-8"?> <androidx.constra ...

  8. 【android studio】注册广播监测网络(附加gif和菊花进度条)

    通过注册广播来监测网络的变化,包含wifi和数据网络的监测,添加了gif图片和菊花进度条.本来想上传一个完整测试的gif,但是只能上传小于5M的,哭了.下面上效果图和代码. 效果图 MainActiv ...

  9. Android studio自动登录和记住密码的实现

    Android studio自动登录和记住密码的实现 文章目录 Android studio自动登录和记住密码的实现 前言 一.效果 二.设计思路 三.知识点介绍 1. SharedPreferenc ...

最新文章

  1. CentOS 7设置ulimit不生效的问题解决
  2. ITK:计算图像的绝对值
  3. LeetCode——链表
  4. 外国经典儿童读物合集pdf_帮助父母在线购买儿童读物–用户体验案例研究
  5. AI单挑Dota 2世界冠军:被电脑虐哭……
  6. 天下为公:TCP堵塞控制
  7. Python-DDoS攻击
  8. 为什么淘宝上同样的东西,专卖店比官方旗舰店便宜?
  9. PHP可以通过什么组件上传大文件
  10. BZOJ5224[Lydsy2017省队十连测] 毁灭
  11. 笔刷怎么做_怎么用手绘+PS做科技感很强的海报?
  12. 3. RN笔记-icon图标的使用和阿里图标的使用
  13. Operator基础:1: Operator Framework简介
  14. 线性代数Python计算:矩阵对角化
  15. TODO LIST案例
  16. Linux发行版之间有什么区别?
  17. .crx文件怎么解压
  18. 接口自动化测试高频面试题
  19. linux tc流量控制(一):classless qdisc
  20. python:python基础语法三,列表、元组、字典、集合

热门文章

  1. 一个不错的故事(上)
  2. Web安全——文件包含漏洞
  3. 用Python定义一个求绝对值的函数
  4. JAVA核心知识点--HttpClient获取302响应中的Location头信息
  5. Understanding parameters:理解参数(Parameter)
  6. 基于SqlServer的DML(数据查询)实验,掌握select查询语句的使用、掌握有无条件查询、结果排序与分组、掌握视图用法
  7. CentOS 7.5 搭建以太坊私联(联盟链)及区块链浏览器
  8. 如何把Kotlin代码转成Java代码、把Java代码转成Kotlin代码
  9. ubuntu常用的服务器搭建
  10. nodejs的http请求是报错 socket hang up