android开发 应用SQLite实现简单注册界面
来源:互联网 发布:淘宝发货提醒短信模板 编辑:程序博客网 时间:2024/06/06 03:39
话痨博主的碎碎念: 偷偷摸摸学了一下子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中,我们有两件事要完成:
- 简单判断键入数据是否符合要求
- 将新用户的数据存入到数据库
数据的简单判断我这里写的很简单,就是用户名不大于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包下:
目前只有三个文件:
- 第一个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";}
- 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); } } }}
- 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用户的数据,完成简单的注册功能。
- android开发 应用SQLite实现简单注册界面
- android SQLite实现本地登录注册功能,SQLite简单应用(android studio)
- android——SQLite实现简单的注册登陆
- Android 应用载入界面的简单实现
- (数据库)Android登录,注册界面简单实现。
- Android开发:SQLite应用
- Android 开发应用SQLite数据库的简单使用(三)
- Android平台SQLite简单应用
- android之SQLite简单应用
- jsp实现了简单的注册界面
- JSP实现简单的注册界面
- Android 实现简单的登陆注册功能(SharedPreferences和SQLite)
- Android简单的用户信息注册界面
- Android应用开发之编码实现 软件界面
- Android应用界面开发——Handler(实现倒计时)
- Android 用户注册界面的实现
- Android开发:setContentView切换界面,自定义带CheckBox的ListView显示SQlite条目-----实现
- Android 应用界面开发笔记
- PAT 乙级 1015
- 就Navicat for MySQL出现的乱码问题进行讨论
- 各种排序算法之插入排序
- 单片机——目录
- [转] (图谱) shiro单点登录
- android开发 应用SQLite实现简单注册界面
- 左值/右值
- JVM垃圾回收算法之新生代和老年代
- 2017/8/22训练日记
- Spring--BeanFactory和ApplicationContext
- learning之状态模式
- 免费馅饼
- Ch’s gift HDU
- Java_19 文件输入/输出流