最近恰好作了一个Android的登陆注册界面,将数据利用SharedPreferences或者SQLite绑定到Android程序中,实现简单的登录注册功能,本文未涉及到与服务器的交流。java

首先,对于登录注册要有一个明确的逻辑顺序,不论是对于SharedPreferences仍是SQLite,流程都是:注册---->检测是否重名---->注册成功---->登陆---->验证用户名与密码---->登陆成功。清楚了这个流程以后,就能够往下写了。这里为何要提到SharedPreferences和SQLite两种方式呢?或许会有人问道,SharedPreferences只能存储一些简单的数据保存在xml文件中,并且它的数据存储是覆盖式的(即存储一条数据会当即擦除覆盖上一条记录),可操做性比起SQLite要差不少,为何还要用这个呢?由于从实用角度来讲,若是一台设备或者仪器只须要给一个默认的登陆用户,那么这个时候彻底不须要写一个SQLite来进行存储,只要给一个默认的键值对来进行一次存储就能够了。可是若是须要实现多人注册功能,那么就须要SQLite来进行一些数据库的操做了。git

前面两步,咱们须要建立一个Registe_Activity,实现注册功能,效果以下:github

这一步是整个登录功能的核心,由于涉及到如何存储用户信息,涉及到数据库的增删改查功能,因此比较重要。sql

首先咱们来看利用SharedPreferences来实现一次性存储功能,代码以下:数据库

private void saveUsersInfo() {

SharedPreferences sharedPreferences = getSharedPreferences("UsersInfo", MODE_APPEND);

SharedPreferences.Editor editor = sharedPreferences.edit();

editor.putString("username", edit_register.getText().toString());

//判断注册时的两次密码是否相同

if (edit_setpassword.getText().toString().equals(edit_resetpassword.getText().toString())) {

editor.putString("password", edit_setpassword.getText().toString());

}

editor.commit();

}

首先建立一个UsersInfo.xml文件,而后用键值对的形式来存储数据,这个过程和Intent传值相似。对于注册时,这里还加了一个“确认密码”项,能够提供更好的用户体验。利用SharedPreferences进行存储的时候,由于是一次性存储,因此一旦注册,就要讲注册功能屏蔽掉了,防止再次注册修改用户信息。服务器

接下来,咱们用SQLite进行多人注册功能的实现,这里主要是一个增长数据的功能,先看代码:优化

private void registerUserInfo(String username, String userpassword) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("username", username);

values.put("password", userpassword);

db.insert("usertable", null, values);

db.close();

}

其实,从代码来看,并非很难理解,这里也是经过键值对的形式来存储用户信息的,可是在一开始建立数据库和建立用户表的时候,须要将id设置为autoincrement,让其实现自动增长的功能,在这里还须要注意的一点是注册时须要判断该用户名是否已经被使用,利用数据库的查询语句能够很方便的实现。.net

public boolean CheckIsDataAlreadyInDBorNot(String value) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

String Query = "Select * from usertable where username =?";

Cursor cursor = db.rawQuery(Query, new String[]{value});

if (cursor.getCount() > 0) {

cursor.close();

return true;

}

cursor.close();

return false;

}

接下来,咱们须要建立一个Login_Activity,用来实现登陆界面,效果以下:code

这样一个登陆界面,主要实现的功能就是读取注册过得用户名——密码键值对,那么如何利用两种方式进行读取数据呢?xml

首先来看SharedPreferences的读取,这种读取方式和Intent的传值相似,代码也很简单。

public void readUsersInfo(){

SharedPreferences sharedPreferences = getSharedPreferences("UsersInfo",MODE_PRIVATE);

account = sharedPreferences.getString("username","");

password = sharedPreferences.getString("password","");

}

在注册的时候,首先会建立一个UserInfo.xml文件,而后以键值对的方式存储用户名和密码,读取就很简单了。若是想要对用户名和密码进行验证,也很简单,只要获取到两个EditText的输入值与读取到的值进行比较便可。

对于SQLite的数据读取,相对而言就要麻烦一些,一样开始的时候,咱们也须要检索到这样一对键值对,代码以下:

public boolean login(String username, String password) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

String sql = "Select * from usertable where username=? and password=?";

Cursor cursor = db.rawQuery(sql, new String[]{username, password});

if (cursor.moveToFirst()) {

cursor.close();

return true;

}

return false;

}

前提咱们得获取到以前建立的数据库,而后利用Select语句进行检索,其中传入的username和password均为输入的值,而后将这两个值与数据库中已有的值进行用户验证。注册登陆的本质就是对于一个数据的存储与读取,其主要内容就是操做数据,对于界面的优化,这个因人而异,只要实现了用户功能便可。本例中对于用户体验方面,还有如下几个小动做:

1.登录界面的密码是否可见

2.注册时,用户名字符的输入限制,本例中容许的字符类型有字母、数字、汉字和下划线_

3.对于密码长度暂时没有设置

4.在登录成功后,自动获取登陆用户的信息,并显示到界面上

但愿对你们有所帮助。

android如何实现用户注册功能,Android 实现简单的登录注册功能(SharedPreferences和SQLite)...相关推荐

  1. 基于android校园订餐APP,简单实现登录注册功能(SharedPreferences)

    基于android校园订餐APP,简单实现登录注册功能(SharedPreferences) 欢迎浏览本篇文章 界面效果图 页面设计代码 源代码 欢迎浏览本篇文章 大家好! 这是小编首次在博客上写的文 ...

  2. 使用JSP实现简单的登录注册功能,并且使用Session跟踪用户登录信息

    使用JSP实现简单的登录注册功能,并且使用了Session来跟踪用户的登录信息,这个是用纯JSP来实现此功能的,由于没有连接数据库,所以使用List来模拟数据库. 第一步:创建web项目 如果有不会创 ...

  3. Java实现简单的登录注册功能

    登录注册在项目开发中是常用的功能需求,以下使用控制台实现一个简单的登录注册功能. 实体类: package com.csdn.entry;public class User {//实体类,对应一个表p ...

  4. 注册登录案例用MVC和mysql_用MVC模式实现简单用户登录注册功能

    Model2模式 Jsp+Servlet+JavaBean MVC:开发模式 M:Model 模型层 ----> JavaBean V:View 视图层 ----> Jsp C:Contr ...

  5. html登陆注册功能实现,实现用户的登录注册功能

    在基于Spring Boot框架上,实现用户的登录注册功能, 首先分析前期所需要的规划. 1 实现登录注册 前端向后端发起post请求 2用户密码安全性 密码是不推荐明文入库的,在后台采取秘钥加加不可 ...

  6. Android studio连接MySQL并完成简单的登录注册功能

    近期需要完成一个Android项目,那先从与数据库交互最简单的登陆注册开始吧,现记录过程如下: 此篇文章的小demo主要涉及数据库的连接,以及相应信息的查找与插入. 我已将源码上传至GitHub: h ...

  7. php+mysql+html+css实现简单的登录注册功能

    本文目录 准备工作 正题 总结 前言: 暑假作业留到现在,emmm,最后那段时间是懒了很多.开学事情比较烦,各种麻烦.这个作业进行总结一下. 准备工作 利用phpstudy集成环境进行实现,看下效果 ...

  8. C#/asp.net使用 entityFramework制作简单的登录注册功能

    很疑惑这么重要的东西网上系统的讲解的几乎屈指可数,我在网上其实零零碎碎找了很久,若诸位有更好的学习渠道 欢迎留言分享 在aspx页面创建控件 如下 ` <table><tr>& ...

  9. C语言实现简单的登录注册功能

    C语言实现一个简单的用户登录,以及用户注册功能. #include "stdio.h" #include "string.h" #include "w ...

最新文章

  1. web项目答辩总结_web实战项目遇到问题总结探索
  2. 2018.3.29 网页中嵌套网页的两种方法
  3. linux学习-用户的特殊 shell 与 PAM 模块
  4. Two Arrays And Swaps CodeForces - 1353B(贪心+分类)
  5. 安装Python package
  6. 如何切换python2和python3 版本
  7. 【原理】 进程调度算法
  8. 推荐几款比较好用的聊天机器人bot开发工具
  9. 浅谈Hibernate的flush机制
  10. 关于gite代码提交不显示绿格子的处理心得git
  11. 手机号码邮箱 验证规则(最新)
  12. win7 64 旗舰版虚拟GPU-VMware下+vs2013安装caffe+matlab+python
  13. Spring Boot配置log4j记录日志
  14. 如何快速删除CSV、Excel、Markdown表格的重复行?
  15. 笔记:基本的世代交叠模型
  16. 【AIOT】语音学习
  17. mac 中文输入法无法使用
  18. Spring Boot项目的打包和解压
  19. win10 激活方法记录
  20. 苏州和上海在生活和工作方面的比较

热门文章

  1. Node.js结合wechaty实现个人微信机器人助手
  2. Unable to locate appropriate constructor on class异常
  3. C# 制作贪吃蛇小游戏,最简单的实现
  4. 用python放烟花咯
  5. 【k8s】重启kubelet、查看所有服务
  6. html的css雪花动效,《前端每日实战》第171号作品:用纯 CSS 绘制一朵美丽的雪花...
  7. 触发器(四、执行顺序控制)
  8. fluid mask 3_CSS3 Fluid Layout和Media Queries:一种响应式Web设计的简单方法
  9. 牛客 小米校招 最大新整数 单调栈
  10. 试题 算法训练 24点