android开发 应用SQLite实现简单注册界面

这篇博客介绍了如何在Android应用中使用SQLite数据库实现简单的用户注册功能。博主通过创建 Spinner 控件,设置数据判断逻辑,并利用SQLite进行数据存储。在用户输入符合要求的数据后,信息会被存入名为user的表中,成功注册后跳转至登录页面。通过查看数据库文件确认数据已成功保存。
摘要由CSDN通过智能技术生成

话痨博主的碎碎念: 偷偷摸摸学了一下子SQLite,照猫画虎的应用在了自己的注册界面上。具体能完成的功能就是在注册界面键入新用户信息,然后通过简单的逻辑判断输入是否符合要求,若符合则存入到我们的user表中。

参考的链接放在前面:


界面如下:

注册界面


在布局文件中:

这个界面在我们之前学习的基础上,要新学习的是Spinner这个控件。
在xml中很简单,只需要简单的放置这个控件:

 <Spinner
                android:id="@+id/question"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:entries="@array/question" />

然后我们需要的是让spinner有不同的选择,我们将他定义在question这个数组中:
找到string.xml文件,添加string array,再给这个string array 添加item即可。
这里写图片描述


在activity中:

在activity中,我们有两件事要完成:

  1. 简单判断键入数据是否符合要求
  2. 将新用户的数据存入到数据库

数据的简单判断我这里写的很简单,就是用户名不大于10个字符,密码大于6位,注册成功后跳转到登陆页面。

String name=username.getText().toString();
        if(name.length()>10){
            Toast.makeText(RegisterActivity.this, "用户名不能大于10位", Toast.LENGTH_SHORT).show();
            return;
        }
        String psw=password.getText().toString();
        if(psw.length()<6){
            Toast.makeText(RegisterActivity.this, "密码不能小于6位", Toast.LENGTH_SHORT).show();
            return;
        }
        String psw_check=confirmPsw.getText().toString();
        if(!psw_check.equals(psw)){
            Toast.makeText(RegisterActivity.this, "两次密码不一致!", Toast.LENGTH_SHORT).show();
            password.setText("");
            confirmPsw.setText("");
            return;
        }
        Toast.makeText(RegisterActivity.this,"注册成功!欢迎您!", Toast.LENGTH_SHORT).show();
        Intent intent=new Intent();
        intent.setClass(RegisterActivity.this, loginActivity.class);
        startActivity(intent);

然后就是将数据插入数据库了
从一开始到现在,我们还未建立过任何一个数据库
所以我们要先简单的使用sqlite建立我们第一个数据库
我将我数据库相关的文件都放在了utils包下:
这里写图片描述

目前只有三个文件:

  1. 第一个constant用于存放一些常量,比如说我们的数据库名、表名、表项名等等。目的在于后期对我们的数据项或者表名要做修改时,只需要修改这个常量值,而不必再去每一个文件中做修改。
public class constant {
public static final String DATABASE_NAME="info.db";//常量
public static final int DATABASE_VERSION=1;
public static final String TABLE_NAME="user";
public static final String USERNAME="username";
public static final String PASSWORD="password";
public static final String QUESTION="question";
public static final String QUESTION_ANS="questionAns";
}
  1. Dbmanager用于对我们的数据库操作做一个管理,如在增删改查的时候对我们的sql语句做一个简单的检查。
//数据库操作工具类
public class DbManager {
    public static mySqlLiteHelper helper;

//  获得helper对象   之后才能对数据库操作
    public static mySqlLiteHelper getIntance(Context context){
        if(helper==null){
            helper=new mySqlLiteHelper(context);
        }
        return helper;
    }

    public static void execSQL(SQLiteDatabase db,String sql){
        if(db!=null){
            if(sql!=null&&!"".equals(sql)){
                db.execSQL(sql);

            }
        }

    }

}
  1. mySqlLiteHelper继承SQLiteOpenHelper这个数据库帮助类。是我们对数据库进行创建的地方。
public class mySqlLiteHelper extends SQLiteOpenHelper {

    public mySqlLiteHelper(Context context, String name, CursorFactory factory, int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    public mySqlLiteHelper(Context context) {
        // TODO Auto-generated constructor stub
        super(context,constant.DATABASE_NAME,null,constant.DATABASE_VERSION);
    }
//数据库创建时回调
//  db 数据库对象
    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        Log.i("tag", "---------------oncreate---------------");
        String sql="create table "+constant.TABLE_NAME+"("+constant.USERNAME+" varchar(10) primary key,"+constant.PASSWORD+" varchar(10) not null,"+constant.QUESTION+" varchar(10) not null,"+constant.QUESTION_ANS+" varchar(10) not null)";
        db.execSQL(sql);

    }
// 数据库版本更新时回调函数
    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO Auto-generated method stub

    }
//  打开时回调
    @Override
    public void onOpen(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        Log.i("tag", "------------------onopen-------------------");
        super.onOpen(db);
    }

}

在此之后,我们需要在相应的registerActivity之中实现我们的数据库。

    private mySqlLiteHelper helper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //将布局xml文件引入当前activity之中
        setContentView(R.layout.activity_register);
        init();
        helper=DbManager.getIntance(this);

    }   

对应的onclick函数中做如下实现:

SQLiteDatabase db=helper.getWritableDatabase();//打开可写的数据库
        String sql="insert into "+constant.TABLE_NAME+" values('"+name+"','"+psw+"','"+q+"','"+Ans+"')";//数据插入语句
        db.execSQL(sql);//执行语句
        db.close();//关闭数据库**不可省略

最后就是验证了:
运行我们的程序,在注册界面填写符合要求的数据。
这里写图片描述

然后我们来看一下我们的数据库有没有新增用户数据:
点击这个:
这里写图片描述

找到对应的安卓设备 data\data\对应项目名称\databases\

这里写图片描述

将我们的数据库文件(info.db)导出,在SQLite expert personal 中打开:
这里写图片描述

发现了我们新增了一条eeee用户的数据,完成简单的注册功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值