iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android开发 登录注册设计
  • 883
分享到

Android开发 登录注册设计

androidandroidstudio 2023-09-18 16:09:18 883人浏览 八月长安
摘要

用Android Studio 简单的实现登录注册 目录 一、登录界面 activity_login.xml 布局代码: login.java 代码:  二、注册界面  activity_register.xml布局代码: register

Android Studio 简单的实现登录注册

目录

一、登录界面

activity_login.xml 布局代码:

login.java 代码: 

二、注册界面 

activity_register.xml布局代码:

register.java 代码:

三、修改密码(忘记密码 ?)

activity_update_password.xml布局代码:

UpdatePassword.java 代码:

四、SQLite 与 SharedPreferences 操作

QQHelper.java 创建SQLite数据库:

QQperate.java 对SQLite数据库进行增、改、查操作:

SaveQQ.java保存QQ账号与密码:

五、登录成功界面

六、 styles.xml 和AndroidManifest.xml

styles.xml 代码:

AndroidManifest.xml 代码:


一、登录界面

activity_login.xml 布局代码:

                                                                                                                                                

login.java 代码: 

package com.example.datastorage;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;import android.content.Intent;import android.os.Bundle;import android.text.TextUtils;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import java.util.Map;import java.util.Timer;import java.util.TimerTask;public class login extends AppCompatActivity implements View.OnClickListener {    QQHelper qqHelper;    private EditText login_z, login_m;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        qqHelper = new QQHelper(login.this);//        login.this.deleteDatabase("qq.db");        init();        Outdate();    }    private void init() {        login_z = findViewById(R.id.login_z);        login_m = findViewById(R.id.login_m);        Button bt_reGISter = findViewById(R.id.bt_register);        Button bt_xpassWord = findViewById(R.id.bt_xpassword);        Button bt_login = findViewById(R.id.bt_login);        bt_register.setOnClickListener(this);        bt_xpassword.setOnClickListener(this);        bt_login.setOnClickListener(this);    }    private void Outdate() {        Map map = SaveQQ.getUserInfo(login.this);        String account = map.get("account");        String password = map.get("password");        login_z.setText(account);        login_m.setText(password);    }    @SuppressLint("NonConstantResourceId")    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.bt_register: {                Intent intent = new Intent(login.this , register.class);                startActivity(intent);                finish();                break;            }            case R.id.bt_xpassword: {                Intent intent = new Intent(login.this , UpdatePassword.class);                startActivity(intent);                finish();                break;            }            case R.id.bt_login: {                String account = login_z.getText().toString().trim();                String password = login_m.getText().toString();                Log.i("debug","登录按钮");                if(TextUtils.isEmpty(account) || TextUtils.isEmpty(password)) {                    Toast.makeText(this, "账号和密码不能为空", Toast.LENGTH_SHORT).show();                    break;                }                int f = QQperate.query(login.this, account, password);                if(f == 1) {                    Intent intent = new Intent(login.this , zhujianActivity.class);                    SaveQQ.SaveUserInfo(login.this, account, password);                    Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();                    startActivity(intent);                    finish();                } else {                    Toast.makeText(this, "账号或密码错误", Toast.LENGTH_SHORT).show();                }                break;            }        }    }}

二、注册界面 

activity_register.xml布局代码:

                                                                                                                                                                                                                                                    

register.java 代码:

package com.example.datastorage;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.text.TextUtils;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;public class register extends AppCompatActivity {    private EditText register_z, register_m, register_am, register_pnum;    private ImageView back;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_register);        init();    }    private void init() {        register_z = findViewById(R.id.register_z);        register_pnum = findViewById(R.id.register_pnum);        register_m = findViewById(R.id.register_m);        register_am = findViewById(R.id.register_am);        Button bt_rGCommit = findViewById(R.id.bt_rgcommit);        back = findViewById(R.id.register_back);        back.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                result();            }        });        bt_rgcommit.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                String account = register_z.getText().toString();                String num = register_pnum.getText().toString().trim();                String password = register_m.getText().toString();                String apassword = register_am.getText().toString();                if(TextUtils.isEmpty(account)) {                    Toast.makeText(register.this, "账号不能为空", Toast.LENGTH_SHORT).show();                    return;                }                if(TextUtils.isEmpty(num)) {                    Toast.makeText(register.this, "号码不能为空", Toast.LENGTH_SHORT).show();                    return;                }                if(TextUtils.isEmpty(password)) {                    Toast.makeText(register.this, "密码不能为空", Toast.LENGTH_SHORT).show();                    return;                }                if(TextUtils.isEmpty(apassword)) {                    Toast.makeText(register.this, "确认密码不能为空", Toast.LENGTH_SHORT).show();                    return;                }                if(!password.equals(apassword)) {                    Toast.makeText(register.this, "密码和确认密码不相同", Toast.LENGTH_SHORT).show();                    return;                }                int f = QQperate.insert(register.this, account, num, password);                if (f == 1) {                    SaveQQ.SaveUserInfo(register.this , account, password);                    Toast.makeText(register.this, "注册成功", Toast.LENGTH_SHORT).show();                } else {                    Toast.makeText(register.this, "注册失败,账号或者号码已存在", Toast.LENGTH_SHORT).show();                }            }        });    }    private void result() {        Intent intent = new Intent(register.this , login.class);        startActivity(intent);        finish();    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {            result();        }        return false;    }}

三、修改密码(忘记密码 ?)

activity_update_password.xml布局代码:

                                                                                                                                                                                                

UpdatePassword.java 代码:

package com.example.datastorage;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.text.TextUtils;import android.view.KeyEvent;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;import java.util.Map;public class UpdatePassword extends AppCompatActivity {    private EditText up_pnum, up_m, up_am;    private ImageView back;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_update_password);        init();    }    private void init() {        up_pnum = findViewById(R.id.up_pnum);        up_m = findViewById(R.id.up_m);        up_am = findViewById(R.id.up_am);        Button bt_upcommit = findViewById(R.id.bt_upcommit);        back = findViewById(R.id.password_back);        back.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                result();            }        });        bt_upcommit.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                String num = up_pnum.getText().toString().trim();                String password = up_m.getText().toString();                String apassword = up_am.getText().toString();                if (TextUtils.isEmpty(num)) {                    Toast.makeText(UpdatePassword.this, "号码不能为空", Toast.LENGTH_SHORT).show();                    return;                }                if (TextUtils.isEmpty(password)) {                    Toast.makeText(UpdatePassword.this, "新密码不能为空", Toast.LENGTH_SHORT).show();                    return;                }                if (TextUtils.isEmpty(apassword)) {                    Toast.makeText(UpdatePassword.this, "确认密码不能为空", Toast.LENGTH_SHORT).show();                    return;                }                if (!password.equals(apassword)) {                    Toast.makeText(UpdatePassword.this, "确认密码不能为空", Toast.LENGTH_SHORT).show();                    return;                }                int f = QQperate.update(UpdatePassword.this , num, password);                if(f == 1) {                    Map map = QQperate.queryUp(UpdatePassword.this , num);                    SaveQQ.SaveUserInfo(UpdatePassword.this , map.get("account"), map.get("password"));                    Toast.makeText(UpdatePassword.this, "修改成功", Toast.LENGTH_SHORT).show();                } else {                    Toast.makeText(UpdatePassword.this, "修改失败", Toast.LENGTH_SHORT).show();                }            }        });    }    private void result() {        Intent intent = new Intent(UpdatePassword.this , login.class);        startActivity(intent);        finish();    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {            result();        }        return false;    }}

四、SQLite 与 SharedPreferences 操作

SQlite数据库存储主要用来保存用户信息,SharedPreferences存储主要用来实现记录账号与密码的功能,方便下次登录。

QQHelper.java 创建SQLite数据库:

package com.example.datastorage;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import androidx.annotation.Nullable;public class QQHelper extends SQLiteOpenHelper {    public QQHelper(@Nullable Context context) {        super(context, "qq.db", null, 1);    }    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {        String sql = "create table user(_id Integer primary key AUTOINCREMENT,  account varchar(20) , num varchar(20), password varchar(20))";        sqLiteDatabase.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {    }}

QQperate.java 对SQLite数据库进行增、改、查操作:

package com.example.datastorage;import android.annotation.SuppressLint;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.util.Log;import java.util.HashMap;import java.util.Map;public class QQperate {    //添加用户    public static int insert(Context context, String account, String num, String password) {        QQHelper qqHelper = new QQHelper(context);        SQLiteDatabase db = qqHelper.getWritableDatabase();        ContentValues values = new ContentValues();        values.put("account",account);        values.put("num",num);        values.put("password",password);        String sql = "select * from user where account=? or num=?";        Cursor cursor = db.rawQuery(sql, new String[]{account, num});        int f = 0;        if(cursor.getCount() == 0) {            db.insert("user",null,values);            f = 1;        }        db.close();        cursor.close();        return f;    }    //修改密码    public static int update(Context context, String num, String password) {        QQHelper qqHelper = new QQHelper(context);        SQLiteDatabase db = qqHelper.getWritableDatabase();        String sql = "update user set password=? where num=?";        Cursor cursor = db.query("user",null,"num=?",new String[]{num},null,null,null);        int f = 0;        if(cursor.getCount() != 0) {            db.execSQL(sql,new String[]{password, num});            f = 1;        }        db.close();        cursor.close();        return f;    }    //查询用户    public static int query(Context context, String account, String password) {        QQHelper qqHelper = new QQHelper(context);        SQLiteDatabase db = qqHelper.getWritableDatabase();        String sql = "select * from user where account=? and password=?";        Cursor cursor = db.rawQuery(sql,new String[]{account,password});        int f = 0;        if(cursor.getCount() != 0) f = 1;        db.close();        cursor.close();        return f;    }    //通过注册号码查询账号与密码    public static Map queryUp(Context context, String num) {        QQHelper qqHelper = new QQHelper(context);        SQLiteDatabase db = qqHelper.getWritableDatabase();        String sql = "select * from user where num=?";        Cursor cursor = db.rawQuery(sql,new String[]{num});        Map map = new HashMap<>();        if(cursor.moveToNext()) {            @SuppressLint("Range") String account = cursor.getString(cursor.getColumnIndex("account"));            @SuppressLint("Range") String password = cursor.getString(cursor.getColumnIndex("password"));            map.put("account",account);            map.put("password",password);        }        cursor.close();        db.close();        return map;    }}

SaveQQ.java保存QQ账号与密码:

package com.example.datastorage;import android.content.Context;import android.content.SharedPreferences;import java.util.HashMap;import java.util.Map;public class SaveQQ {    public static void SaveUserInfo(Context context, String account, String password) {        SharedPreferences sharedPreferences = context.getSharedPreferences("QQuser",Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sharedPreferences.edit();        editor.putString("account",account);        editor.putString("password",password);        editor.apply();    }    public static Map getUserInfo(Context context) {        SharedPreferences sharedPreferences = context.getSharedPreferences("QQuser",Context.MODE_PRIVATE);        String account = sharedPreferences.getString("account",null);        String password = sharedPreferences.getString("password",null);        Map map = new HashMap<>();        map.put("account",account);        map.put("password",password);        return map;    }}

五、登录成功界面

activity_zhujian.xml 代码:

                        

zhujianActivity.java 代码:

package com.example.datastorage;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;public class zhujianActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_zhujian);    }}

六、 styles.xml 和AndroidManifest.xml

在创建Activity之后,需要对创建的Activity进行配置,在AndroidManifest.xml中可以看到Activity的配置,其中exported根据需要设置,启动模式可以选择默认,stles.xml里面设置的是竖线。(AndroidManifest.xml 中有不是登录注册的Activity配置,不要混淆)

styles.xml 代码:

    

AndroidManifest.xml 代码:

                                                                                                                                        

来源地址:https://blog.csdn.net/qq_51936803/article/details/130072031

--结束END--

本文标题: Android开发 登录注册设计

本文链接: https://www.lsjlt.com/news/411886.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android开发 登录注册设计
    用Android Studio 简单的实现登录注册 目录 一、登录界面 activity_login.xml 布局代码: login.java 代码:  二、注册界面  activity_register.xml布局代码: register...
    99+
    2023-09-18
    android android studio
  • android实现简易登录注册界面及逻辑设计
    本文实例为大家分享了android实现登录注册界面及逻辑设计,供大家参考,具体内容如下 1. 第一步 新建文件(相信各位码农一定会这一步)略。 2. 第二步 登录注册界面设计 登录界...
    99+
    2024-04-02
  • android实现注册登录程序
    本文实例为大家分享了android实现注册登录程序的具体代码,供大家参考,具体内容如下 注册页面: user_register.xml: <xml version="1.0" ...
    99+
    2024-04-02
  • Android实现登录注册功能
    本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下 运行环境 Android Studio 总体效果图 一、 设计注册页面的布局 二、完成注册...
    99+
    2024-04-02
  • 小程序如何设计登录/注册页面
    这篇文章主要介绍小程序如何设计登录/注册页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!界面设计页面引用了youzan组件进行设计,包括icon,button,tag,toast以...
    99+
    2024-04-02
  • Android Studio+Servlet+MySql实现登录注册
    一、Android 项目当中设置明文传输 1、设置明文传输的xml <?xml version="1.0" encoding="UTF-8"?...
    99+
    2024-04-02
  • Android实现登录注册页面(下)
    前面我们已经完成了登录注册页面的布局,下面我们实现验证登录和记住密码的功能。 我们这里还没用到数据库,所以我们的验证的账号密码,是写死的。 首先进入登录页面,可以从这里跳转到注册页面...
    99+
    2024-04-02
  • Android实现登录注册页面(上)
    简单的Android开发登录注册,这个是没有连数据库的。 首先,新建项目,新建一个登录页面LoginActivity和注册页面RegisterActivity。 下面是登录页面的代码...
    99+
    2024-04-02
  • Android实现登录注册界面框架
    小项目框架 今天用QQ的时候想到了,不如用android studio 做一个类似于这样的登录软件。当然QQ的实现的功能特别复杂,UI界面也很多,不是单纯的一时新奇就可以做出来的。就...
    99+
    2024-04-02
  • Android studio 实现app登录注册页面
    目录 activity_main.xml代码如下 MainActivity.java代码如下 用于高校实现Android studio专业课作业提交,如确实有用,欢迎观众姥爷打赏 该页面实现了注册页面的布局效果,包含用户名,密码,忘记密...
    99+
    2023-10-06
    android-studio adb android android studio
  • php登录注册
    先新建一个view文件夹,在view文件里面建立两个.html文件,分别命名为: login.html和register.html,再新建一个css文件夹里面有login.css和register.css         下图是文件分布图:...
    99+
    2023-09-25
    php 前端 javascript css bootstrap
  • Android用SharedPreferences实现登录注册注销功能
    Android用SharedPreferences实现登录注册注销功能 前言 本文用SharedPreferences本地缓存账号信息来实现登录注册功能,以及退出注销功能。 一、本文...
    99+
    2024-04-02
  • android怎么实现注册登录程序
    这篇文章主要介绍“android怎么实现注册登录程序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“android怎么实现注册登录程序”文章能帮助大家解决问题。注册页面:user_register.x...
    99+
    2023-06-30
  • android登录注册功能如何实现
    要实现Android的登录注册功能,你可以按照以下步骤进行操作:1. 创建一个布局文件来设计登录和注册界面。可以使用EditText...
    99+
    2023-10-20
    android
  • android实现注册页面开发
    本文实例为大家分享了android实现注册页面开发的具体代码,供大家参考,具体内容如下 在values文件里创建以下几个文件 colors代码: <xml version=...
    99+
    2024-04-02
  • Android实现登录界面的注册功能
    本文实例为大家分享了Android登录界面的注册实现代码,供大家参考,具体内容如下 注册一个登录界面在控制台将输入的信息文本选框展示出来 xml界面设计(前面已发) <xml ...
    99+
    2024-04-02
  • Android使用http实现注册登录功能
    在项目中实现注册登录有很多种方式,一般对于初学者来说,不使用框架,采用http的post和get请求后台服务器,是一种更好理解底层源码的方式。使用框架实现注册登录虽然比自己封装pos...
    99+
    2024-04-02
  • Android用SharedPreferences怎么实现登录注册注销功能
    这篇“Android用SharedPreferences怎么实现登录注册注销功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-06-30
  • Android开发----实现登录注册页面(创建本地数据库,对注册的账户密码进行存储)
    实现登录注册页面(创建本地数据库,对注册的账户密码进行存储) 写在前面: 本文实现了登录注册页面的开发,创建了本地数据库,存储注册的账户密码。注册账户为手机号,对账户为手机号进行了正则化验证。登录成功...
    99+
    2023-10-21
    数据库 android
  • Android基于Sqlite实现注册和登录功能
    Android中基于Sqlite实现注册和登录功能,供大家参考,具体内容如下 前言 写这篇博客主要是为了巩固一下学的Sqlite知识以及梳理一下这个项目的逻辑 实现逻辑 项目的图片...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作