最近初学android,做了实验室老师给的基本任务,就是简单的登陆和注册,并能通过SQLite实现登陆,SQlLite是嵌入在安卓设备中的

好了下面是主要代码:

数据库的建立:

这里我只是建立了一个用简单的存储用户名和密码的表单

MyDBHelper.java

public class MyDBHelper extends SQLiteOpenHelper {

    public static final String CREATE_USERDATA="create table userData(" +
"id integer primary key autoincrement,"
+"nametext,"
+"password text)"; private Context mContext; public MyDBHelper(Context context, String name, SQLiteDatabase.CursorFactory cursorFactory,int version){
super(context,name,cursorFactory,version);
mContext=context;
} public void onCreate(SQLiteDatabase db){
db.execSQL(CREATE_USERDATA);
} public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
//onCreate(db);
} }

注册:

Main2Activity.java

public class Main2Activity extends AppCompatActivity {

    private MyDBHelper dbHelper;

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2); dbHelper = new MyDBHelper(this,"UserStore.db",null,1);
} public void logon(View view){
//SQLiteDatabase db=dbHelper.getWritableDatabase(); EditText editText3=(EditText)findViewById(R.id.editText3);
EditText editText4=(EditText)findViewById(R.id.editText4);
String newname =editText3.getText().toString();
String password=editText4.getText().toString();
if (CheckIsDataAlreadyInDBorNot(newname)) {
Toast.makeText(this,"该用户名已被注册,注册失败",Toast.LENGTH_SHORT).show();
}
else { if (register(newname, password)) {
Toast.makeText(this, "插入数据表成功", Toast.LENGTH_SHORT).show();
}
}
}
//向数据库插入数据
public boolean register(String username,String password){
SQLiteDatabase db= dbHelper.getWritableDatabase();
/*String sql = "insert into userData(name,password) value(?,?)";
Object obj[]={username,password};
db.execSQL(sql,obj);*/
ContentValues values=new ContentValues();
values.put("name",username);
values.put("password",password);
db.insert("userData",null,values);
db.close();
//db.execSQL("insert into userData (name,password) values (?,?)",new String[]{username,password});
return true;
}
//检验用户名是否已存在
public boolean CheckIsDataAlreadyInDBorNot(String value){
SQLiteDatabase db=dbHelper.getWritableDatabase();
String Query = "Select * from userData where name =?";
Cursor cursor = db.rawQuery(Query,new String[] { value });
if (cursor.getCount()>0){
cursor.close();
return true;
}
cursor.close();
return false;
} }

登陆:

MainActivity.java
public class MainActivity extends AppCompatActivity {
private MyDBHelper dbHelper;
private EditText username;
private EditText userpassword; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); dbHelper = new MyDBHelper(this,"UserStore.db",null,1);
} //点击注册按钮进入注册页面
public void logonClicked(View view){
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
} //点击登录按钮
public void loginClicked(View view) {
username=(EditText)findViewById(R.id.editText2);
userpassword=(EditText)findViewById(R.id.editText);
String userName=username.getText().toString();
String passWord=userpassword.getText().toString();
if (login(userName,passWord)) {
Toast.makeText(MainActivity.this, "登陆成功(ZY,111)", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(MainActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
}
} //验证登录
public boolean login(String username,String password) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "select * from userData where name=? and password=?";
Cursor cursor = db.rawQuery(sql, new String[] {username, password});
if (cursor.moveToFirst()) {
cursor.close();
return true;
}
return false;
}

好了,就酱。

android简单登陆和注册功能实现+SQLite数据库学习的更多相关文章

  1. 编写简单登陆和注册功能的demo时遇到的问题

    一.注册功能中添加数据不成功 给数据库添加EditText中的内容后,数据库中找不到添加后的数据,并且存在字符串为空的数据 解决方法:EditText registerAccount = (EditT ...

  2. Android Studio 通过一个登录功能介绍SQLite数据库的使用

    前言: SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在 ...

  3. php实现微信扫码自动登陆与注册功能

    本文实例讲述了php实现微信扫码自动登陆与注册功能.分享给大家供大家参考,具体如下: 微信开发已经是现在程序员必须要掌握的一项基本的技术了,其实做过微信开发的都知道微信接口非常的强大做起来也非常的简单 ...

  4. JavaWeb 实现简单登录、注册功能

    1.首先创建一个简单的动态Javaweb项目 2.然后手动建立文件目录: 项目创建好之后,在src下建几个包: controller:控制器,负责转发请求,对请求进行处理,主要存放servlet: d ...

  5. Android 简单登陆 涉及 Button CheckBox TextView EditText简单应用

    GitHub地址:https://github.com/1165863642/LoginDemo 直接贴代码<?xml version="1.0" encoding=&quo ...

  6. <Android基础> (六) 数据存储 Part 3 SQLite数据库存储

    6.4 SQLite数据库存储 SQLite是一种轻量级的关系型数据库,运算速度快,占用资源少. 6.4.1 创建数据库 Android为了管理数据库,专门提供了SQLiteOpenHelper帮助类 ...

  7. 21.Android之SQLite数据库学习

    Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动 ...

  8. Android SQLite 数据库学习

    SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...

  9. Android数据存储之SQLite 数据库学习

    Android提供了五种存取数据的方式 (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQLite数据库,存放各种数据, ...

随机推荐

  1. 关于iOS10 Xcode8真机测试项目出现的问题 "code signing is required for product type 'xxxxx' in SDK 'iOS 10.0"..

    昨天用真机测试项目出现这样的错误,在网上搜集了一些信息,所以将自己的经验分享出来帮助更多的人. 第一步: 检查你的1和2是否填写正确,如果你是运行别人的项目,BundleIdentifier要和你的X ...

  2. 使用ajax实现无刷新改变页面内容

    如何使用ajax实现无刷新改变页面内容(也就是ajax异步请求刷新页面),下面通过一个小demo说明一下,前端页面代码如下所示 1 <%@ Page Language="C#" ...

  3. @RequestBody接收ajax的json字符串

    在使用ajax进行请求,并传递参数时,偶尔需要把数组作为传递参数,这是就要使用@RequestBody来解决这个问题 在页面端的处理: (1)利用JSON.stringify(arr)需要把json对 ...

  4. HTML DOM 方法

    一.HMTL DOM对象 --方法和属性 1.1常用的方法. 1.getElementByld( id )方法 --获取带有指定id 的节点( 元素 ) 2.appendChild( node )方法 ...

  5. 3个div 宽度移入移出时变化

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. Ajax 知识点

    AJAX 即"Asynchronous Javascript And XML"(异步JavaScript和XML) Ajax 不是某种编程语言,只是一种在无需重新加载整个网页的情况 ...

  7. Lucene教程(转)

    Lucene教程 1 lucene简介1.1 什么是lucene    Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...

  8. new与malloc

    首先将new与malloc的区别总结如下: 1 new可以自动计算需要分配多大的内存,而malloc必须指明. 2 new返回的指针是有类型的,malloc返回void*类型的指针. 3 new在分配 ...

  9. PC和HOST之间文件传送

    从PC到HOST 文件传送表(*.srl) C:\123.txt text ~'LIANG.TEST.LIB.123' 批处理文件(*.bat) SEND "PC文件全路径" 'H ...

  10. 20151210study

    -----------------------------------------------------The election officials were not neutral.选举官员并不是 ...