文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android基于Sqlite怎么实现注册和登录功能

2023-06-30 09:07

关注

本篇内容主要讲解“Android基于Sqlite怎么实现注册和登录功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android基于Sqlite怎么实现注册和登录功能”吧!

实现逻辑

Android基于Sqlite怎么实现注册和登录功能

项目的图片结构图如下

Android基于Sqlite怎么实现注册和登录功能

代码

user class

public class User {    private String name;    //用户名    private String password;     //密码    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;    }}

DBOpenHelper class

import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import java.util.ArrayList;public class DBOpenHelper extends SQLiteOpenHelper {    private SQLiteDatabase db;    public DBOpenHelper(Context context){//打开数据库        super(context,"db_test",null,1);//1:上下文,2:数据库名,3:允许我们查询数据时返回一个Cursor,4:当前数据库的版本号        db = getReadableDatabase();    }    @Override    public void onCreate(SQLiteDatabase db){//建表(user)语句        db.execSQL("CREATE TABLE IF NOT EXISTS user(" +//PRIMARY key 将id设为主键 ,AUTOINCREMENT 设置id列自为增长                "_id INTEGER PRIMARY KEY AUTOINCREMENT," +                "name TEXT," +                       //text 文本类型                "password TEXT)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){//重写升级        db.execSQL("DROP TABLE IF EXISTS user");        onCreate(db);    }    public void add(String name,String password){//重写添加        db.execSQL("INSERT INTO user (name,password) VALUES(?,?)",new Object[]{name,password});    }    public void delete(String name,String password){//重写删除        db.execSQL("DELETE FROM user WHERE name = AND password ="+name+password);    }    public void updata(String password){//重写更新        db.execSQL("UPDATE user SET password = ?",new Object[]{password});    }    public ArrayList<User> getAllData(){//将表内信息返回成一个list        ArrayList<User> list = new ArrayList<User>();        Cursor cursor = db.query("user",null,null,null,null,null,"name DESC");//1表名,2列,3行,4行,5指定列进行过滤,6进一步过滤。7得到的信息进行排序(desc逆序)        while(cursor.moveToNext()){//一行一行遍历            String name = cursor.getString(cursor.getColumnIndex("name"));//移动到name列,读取出来            String password = cursor.getString(cursor.getColumnIndex("password"));            list.add(new User(name,password));//添加到user 的list中        }        return list;//把list返回    }}

activity_login.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"    android:background="#eeeeee"    tools:context=".LoginActivity">    <RelativeLayout        android:id="@+id/rl_loginactivity_top"        android:layout_width="match_parent"        android:layout_height="70dp"  >        <ImageView            android:id="@+id/iv_loginactivity_back"            android:layout_width="30dp"            android:layout_height="30dp"            android:layout_alignParentTop="true"            android:layout_marginLeft="10dp"            android:layout_marginTop="20dp"            android:clickable="true" />        <TextView            android:id="@+id/tv_loginactivity_login"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="登录"            android:textColor="#3A5FCD"            android:textSize="20dp"            android:layout_toRightOf="@+id/iv_loginactivity_back"            android:layout_centerVertical="true"            android:layout_alignParentLeft="true"            android:layout_marginLeft="30dp"            />        <TextView            android:id="@+id/tv_loginactivity_register"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="注册"            android:textColor="#3A5FCD"            android:textSize="20dp"            android:layout_centerVertical="true"            android:layout_alignParentRight="true"            android:layout_marginRight="30dp"            android:clickable="true"            android:onClick="onClick"            />    </RelativeLayout>    <LinearLayout        android:id="@+id/ll_loginactivity_two"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        android:layout_below="@+id/rl_loginactivity_top"        android:layout_marginTop="10dp"        android:layout_marginLeft="5dp"        android:layout_marginRight="5dp"        >        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal">            <TextView                android:id="@+id/tv_loginactivity_username"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="用户名:"/>            <EditText                android:id="@+id/et_loginactivity_username"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:hint="手机号/邮箱/用户名"/>        </LinearLayout>        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal">            <TextView                android:id="@+id/tv_loginactivity_password"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="密    码:"/>            <EditText                android:id="@+id/et_loginactivity_password"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:hint="登录密码"                android:inputType="textPassword"/>        </LinearLayout>    </LinearLayout>    <Button        android:id="@+id/bt_loginactivity_login"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/ll_loginactivity_two"        android:layout_marginTop="10dp"        android:layout_marginLeft="5dp"        android:layout_marginRight="5dp"        android:text="登录"        android:textColor="#3A5FCD"        android:gravity="center"        android:onClick="onClick"        /></RelativeLayout>

LoginActivity

import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.content.Intent;import android.text.TextUtils;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;public class LoginActivity extends AppCompatActivity implements View.OnClickListener {    private DBOpenHelper mDBOpenHelper;    private EditText mEtLoginactivityUsername;    private EditText mEtLoginactivityPassword;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        initView();        mDBOpenHelper = new DBOpenHelper(this);    }    private void initView() {        // 初始化控件        mEtLoginactivityUsername = findViewById(R.id.et_loginactivity_username);        mEtLoginactivityPassword = findViewById(R.id.et_loginactivity_password);        // 设置点击事件监听器    }    public void onClick(View view) {        switch (view.getId()) {            // 跳转到注册界面            case R.id.tv_loginactivity_register:                startActivity(new Intent(this, RegisterActivity.class));                finish();                break;            case R.id.bt_loginactivity_login:                String name = mEtLoginactivityUsername.getText().toString().trim();//.trim()删除两边的空格                String password = mEtLoginactivityPassword.getText().toString().trim();                if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password)) {//TextUtils.isEmpty()输入框是空值或者你就敲了几下空格键该方法都会返回true                    ArrayList<User> data = mDBOpenHelper.getAllData();//data为获取的user表内的user信息                    boolean match = false;                    for (int i = 0; i < data.size(); i++) {//遍历比较                        User user = data.get(i);//获取data里的第i个user信息                        if (name.equals(user.getName()) && password.equals(user.getPassword())) {//将信息与输入的信息进行对比                            match = true;                            break;                        } else {                            match = false;                        }                    }                    if (match) {                        Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();                        Intent intent = new Intent(this, MainActivity.class);                        startActivity(intent);                        finish();//销毁此Activity                    } else {                        Toast.makeText(this, "用户名或密码不正确,请重新输入", Toast.LENGTH_SHORT).show();                    }                } else {                    Toast.makeText(this, "请输入你的用户名或密码", Toast.LENGTH_SHORT).show();                }                break;        }    }}

activity_register.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"    android:background="#eeeeee"    tools:context=".RegisterActivity">    <RelativeLayout        android:id="@+id/rl_registeractivity_top"        android:layout_width="match_parent"        android:layout_height="70dp"        >        <ImageView            android:id="@+id/iv_registeractivity_back"            android:layout_width="30dp"            android:layout_height="30dp"            android:layout_centerVertical="true"            android:layout_marginLeft="10dp"            android:clickable="true"            />        <TextView            android:id="@+id/tv_registeractivity_register"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="注册"            android:textColor="#3A5FCD"            android:textSize="20dp"            android:layout_centerVertical="true"            android:layout_marginLeft="20dp"            />    </RelativeLayout>    <LinearLayout        android:id="@+id/ll_registeractivity_body"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        android:layout_below="@+id/rl_registeractivity_top"        android:layout_marginTop="10dp"        android:layout_marginLeft="5dp"        android:layout_marginRight="5dp"        >        <!-- 第一个文本编辑框  输入用户名 -->        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal">            <TextView                android:id="@+id/tv_registeractivity_username"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="用户名:"/>            <EditText                android:id="@+id/et_registeractivity_username"                android:layout_width="match_parent"                android:layout_height="50dp"                android:hint="请输入用户名"                android:gravity="center_vertical"                android:layout_marginLeft="10dp"                />        </LinearLayout>        <!-- 第二个文本编辑框  输入密码 -->        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal">            <TextView                android:id="@+id/tv_registeractivity_password1"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="密    码:"/>            <EditText                android:id="@+id/et_registeractivity_password"                android:layout_width="match_parent"                android:layout_height="50dp"                android:gravity="center_vertical"                android:layout_marginLeft="10dp"                android:inputType="textPassword"                android:hint="请输入密码" />        </LinearLayout>        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginRight="15dp"            android:layout_marginTop="10dp"            android:orientation="horizontal" />        <!-- 注册按钮 -->        <Button            android:id="@+id/bt_registeractivity_register"            android:layout_width="match_parent"            android:layout_height="50dp"            android:layout_marginLeft="5dp"            android:textColor="#3A5FCD"            android:text="注册"            android:layout_marginTop="40dp"            android:onClick="onClick"            />    </LinearLayout></RelativeLayout>

RegisterActivity

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.ImageView;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {    private DBOpenHelper mDBOpenHelper;    private Button mBtRegisteractivityRegister;    private ImageView mIvRegisteractivityBack;    private EditText mEtRegisteractivityUsername;    private EditText mEtRegisteractivityPassword;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_register);        initView();        mDBOpenHelper = new DBOpenHelper(this);    }    private void initView(){        mEtRegisteractivityUsername = findViewById(R.id.et_registeractivity_username);        mEtRegisteractivityPassword = findViewById(R.id.et_registeractivity_password);}    public void onClick(View view) {        switch (view.getId()) {            case R.id.iv_registeractivity_back: //返回登录页面                Intent intent1 = new Intent(this, LoginActivity.class);                startActivity(intent1);                finish();                break;            case R.id.bt_registeractivity_register:    //注册按钮                //获取用户输入的用户名、密码、验证码                String username = mEtRegisteractivityUsername.getText().toString().trim();                String password = mEtRegisteractivityPassword.getText().toString().trim();                //注册验证                if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password)) {                    mDBOpenHelper.add(username, password);//将用户名和密码加入到数据库的表内中                    Intent intent2 = new Intent(this, LoginActivity.class);                    startActivity(intent2);                    finish();                    Toast.makeText(this, "验证通过,注册成功", Toast.LENGTH_SHORT).show();                } else {                    Toast.makeText(this, "未完善信息,注册失败", Toast.LENGTH_SHORT).show();                }                break;        }    }}

实现效果

Android基于Sqlite怎么实现注册和登录功能

到此,相信大家对“Android基于Sqlite怎么实现注册和登录功能”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯