AndroidStudio基于Sqlite的登录注册(保姆级教程)

这篇具有很好参考价值的文章主要介绍了AndroidStudio基于Sqlite的登录注册(保姆级教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

可在此基础上进行二次开发!

源码地址:源码请点击这里哟!

总的布局:

AndroidStudio基于Sqlite的登录注册(保姆级教程)

1、先创建一个空的项目

AndroidStudio基于Sqlite的登录注册(保姆级教程)

AndroidStudio基于Sqlite的登录注册(保姆级教程)

选好后直接Finish就行

AndroidStudio基于Sqlite的登录注册(保姆级教程)

 2、对activity_mian,xml文件进行布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="50dp"
        android:layout_marginTop="200dp"
        android:text="用户名:"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="50dp"
        android:layout_marginTop="280dp"
        android:text="密码:"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/edname1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:layout_marginTop="190dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/textView"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="TouchTargetSizeCheck,SpeakableTextPresentCheck" />

    <EditText
        android:id="@+id/edpassword1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="30dp"
        android:layout_marginTop="270dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/textView2"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="TouchTargetSizeCheck,SpeakableTextPresentCheck" />

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="80dp"
        android:layout_marginTop="380dp"
        android:text="登录"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="380dp"
        android:layout_marginEnd="80dp"
        android:text="注册"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

AndroidStudio基于Sqlite的登录注册(保姆级教程)

3、MainActivity代码

package com.example.mypracticeone;

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 MainActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText edname,edpassword;
    private Button login,register;
    private MySqliteHelper mySqliteHelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mySqliteHelper = new MySqliteHelper(this);
        find();
    }
    private void find() {
        edname = findViewById(R.id.edname1);
        edpassword = findViewById(R.id.edpassword1);
        login = findViewById(R.id.login);
        register = findViewById(R.id.register);

        login.setOnClickListener(this);
        register.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        switch (id){
            case R.id.login:
                String s = edname.getText().toString();
                String s1 = edpassword.getText().toString();
                boolean login = mySqliteHelper.login(s,s1);
                if (login){
                    Intent i = new Intent(this,Good.class);
                    startActivity(i);
                }else {
                    Toast.makeText(this,"登陆失败!",Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.register:
                Intent i1 = new Intent(this,Register.class);
                startActivity(i1);
                break;
        }
    }
}

 4、User类的代码:

package com.example.mypracticeone.bean;

public class User {
    private String name;
    private String password;

    public User() {
    }

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    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;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

5、MySqliteHelper类的代码:

package com.example.mypracticeone;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

import com.example.mypracticeone.bean.User;

public class MySqliteHelper extends SQLiteOpenHelper {

    private static final String DB_NAME = "MYsqlite.db";
    private static final String create_users = "create table users(name varchar(32),password varchar(32))";

    public MySqliteHelper(@Nullable Context context) {
        super(context, DB_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(create_users);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }

    public long register(User u){
        SQLiteDatabase db = getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("name",u.getName());
        cv.put("password",u.getPassword());
        long users = db.insert("users",null,cv);
        return users;
    }

    public boolean login(String name,String password){
        SQLiteDatabase db1 = getWritableDatabase();
        boolean result = false;

        Cursor users = db1.query("users",null,"name like ?",new String[]{name},null,null,null);
        if(users != null){
            while (users.moveToNext()){
                String password1 = users.getString(1);
                result = password1.equals(password);
                return result;
            }
        }
        return result;
    }
}

6、Good与Register类都为创建的Empty Activity

        AndroidStudio基于Sqlite的登录注册(保姆级教程)

AndroidStudio基于Sqlite的登录注册(保姆级教程)

7、Good类的代码:

package com.example.mypracticeone;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class Good extends AppCompatActivity {

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

 activity_good.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".Good">

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="150dp"
        android:layout_marginTop="200dp"
        android:text="HelloWorld"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

8、Register类的代码:

package com.example.mypracticeone;

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;

import com.example.mypracticeone.bean.User;

public class Register extends AppCompatActivity{

    private EditText edname1,edpassword1;
    private Button register1;
    private MySqliteHelper mySqliteHelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        mySqliteHelper = new MySqliteHelper(this);
        find();
    }
    private void find(){
        edname1 = findViewById(R.id.edname1);
        edpassword1 = findViewById(R.id.edpassword1);
        register1 = findViewById(R.id.login);
    }

    public void register(View view) {
        String s = edname1.getText().toString();
        String s1 = edpassword1.getText().toString();
        User u = new User(s,s1);
        long l = mySqliteHelper.register(u);
        if(l!=-1){
            Toast.makeText(this,"注册成功!",Toast.LENGTH_SHORT).show();
            Intent i3 = new Intent(this,MainActivity.class);
            startActivity(i3);
        }else {
            Toast.makeText(this,"注册失败!",Toast.LENGTH_SHORT).show();
        }
    }
}

activity_register.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".Register">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="200dp"
android:text="用户名:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="280dp"
android:text="密码:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<EditText
android:id="@+id/edname1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="190dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintStart_toEndOf="@+id/textView"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="TouchTargetSizeCheck,SpeakableTextPresentCheck" />

<EditText
android:id="@+id/edpassword1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="270dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintStart_toEndOf="@+id/textView2"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="TouchTargetSizeCheck,SpeakableTextPresentCheck" />

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="150dp"
        android:layout_marginTop="380dp"
        android:text="注册"
        android:onClick="register"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

AndroidStudio基于Sqlite的登录注册(保姆级教程)文章来源地址https://www.toymoban.com/news/detail-495349.html

喜欢的话就点赞收藏关注一下吧,要不然到以后就找不到了哟!!! 

到了这里,关于AndroidStudio基于Sqlite的登录注册(保姆级教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Studio|使用SqLite实现一个简单的登录注册功能

    本学期学习了Android Studio这门课程,本次使用Android Studio自带的sqlite数据库实现一个简单的登录注册功能。 目录 一、了解什么是Android Studio? 二、了解什么是sqlite? 三、创建项目文件  四、创建活动文件和布局文件。 五、创建数据库,连接数据库  六、创建实体类,实现注

    2024年02月06日
    浏览(49)
  • Linux系统下SQLite创建数据库, 建表, 插入数据保姆级教程

    1,创建数据库: sqlite test.db  我这边是sqlite2版本, 直接使用命令sqlite test.db创建一个名称为test的数据库; test是你自定义是数据库名 , 创建好数据库后, 接下来开始创建表格 2.创建表格, 就是常规的sql建表语句 CREATE TABLE  ids_logs ( english_details TEXT, chinese_details TEXT, event_definition TEXT

    2024年02月08日
    浏览(60)
  • AndroidStudio启动虚拟机时报错Android Emulator Hypervisor Driver for AMD Processors is not installed(保姆级教程)

    相信很多小伙伴在启动Android虚拟机时有遇到报错问题,Android Studio提示下面内容: Intel HAXM is required to run this AVD. Android Emulator Hypervisor Driver for AMD Processors is not installed.  Install Android Emulator Hypervisor Driver for AMD Processors for better emulation performance.  点击下一步安装时又报错: An

    2023年04月09日
    浏览(65)
  • 原来Vinted注册这么简单!Vinted注册保姆级教程分享

    如果是日本的二手平台代表是煤炉,美国是PoshMark,那欧洲呼声最高的就是Vinted了,今天东哥就给大家科普一下Vinted这个平台,教大家怎么去成功注册Vinted,开启自己的Vinted跨境电商之旅。 Vinted跟煤炉、某鱼差不多性质,是一个二手服装商品和配饰的平台,支持在 iOS、Andr

    2024年02月09日
    浏览(44)
  • 注册 Google 邮箱(最新:保姆级教程)

    1、我们使用浏览器打开谷歌邮箱官网(gmail.google.com),进入谷歌邮箱的登录主页,我们点击左下方的创建账号按钮,选择个人用途 2、在进入的界面我们不要着急填写资料,我们先修改语言,点击左下方的简体中文。这个时候,会弹出国家语言列表,我们选择“English(Unit

    2024年02月10日
    浏览(39)
  • 【AI作图】Midjourney保姆级注册&使用教程

    ​哈喽,大家好,我是木易巷~ 目前AI的发展速度简直太快了,之前科技进步按年、月为单位,现在简直是按天!! 这不,木易巷最近尝试了一下Midjourney,作图效果真的很不错。Midjourney的AI绘画是现在最火的一款Ai绘画工具,它利用最先进的人工智能技术,可以输入一些词语

    2023年04月15日
    浏览(47)
  • 基于Layui的登录注册页面模板

    在layui 版本2.8+中,提供了好看的登录注册模板。 目录 1、登录模板 (1)效果预览 (2)完整代码 2、注册模板  (1)效果预览 ​(2)完整代码 官网地址:表单组件 form - Layui 文档 官网地址:表单组件 form - Layui 文档  

    2024年02月11日
    浏览(37)
  • Android期末大作业:使用AndroidStudio开发图书管理系统APP(使用sqlite数据库)

    Android Studio开发项目图书管理系统项目视频展示: 点击进入图书管理系统项目视频 现在是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴求更是与日俱增。图书馆作为学生学习知识的

    2024年02月08日
    浏览(53)
  • AI绘画天花板——Midjourney注册使用保姆级教程(5月5日验证有效)

    大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加我,备注:aigc,拉你进群。  现在市面上AI绘图大概有三大阵营:Midjourney、Stable Diffusion,还有一个就是OpenAI实验室的DALL.E。每个平台各有其特点,其中,效果最好,使用最广泛,而且最便捷的

    2024年02月09日
    浏览(57)
  • 若依实现第三方登录,史上最全保姆级教程

    2.3.1:实体类 2.3.2:mapper.java 2.3.3:mapper对应的xml 2.3.4:service接口 2.3.5:service实现类 2.3.5:SysUserThirdAccountController 3.8.1:在原来的注入UserDetailsService类上添加注解指定userDetailsByPasswordService 3.8.2:添加认证白名单,这几个链接配置为免登录链接 3.8.3:将AuthenticationGiteeProvider注入

    2024年01月21日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包