Android 在添加数据至数据库时添加控制输入语句操作
1.在将数据加入数据库之前,我们要先进行判断,通常在网页中我们都是通过js来写控制语句的,
那么在android studio中,如何编写控制语句呢?
其实原理差不多,对于每一个输入框,设置EditText的响应事件,当输入满足情况后,给出提示,最后,
添加一个总的判断输入条件函数,对于整体进行判断,具体代码如下所示
editText1=findViewById(R.id.register_inoutusername); editText2=findViewById(R.id.register_inputclass); editText3=findViewById(R.id.register_inputidnumber); editText4=findViewById(R.id.register_inputpsd); editText5=findViewById(R.id.register_input_aginpsd); //判断姓名是否输入符合规范 editText1.addTextChangedListener(new TextWatcher() {@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}public void afterTextChanged(Editable editable) {String ss="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,15}$";//字母数字6到15位 Pattern pattern = Pattern.compile(ss); Matcher matcher = pattern.matcher(editable.toString()); //int len=editText1.toString().length(); if(matcher.matches())Toast.makeText(register.this, "姓名符合规范!", Toast.LENGTH_SHORT).show(); } }); //判断班级输入是否符合规范 editText2.addTextChangedListener(new TextWatcher() {@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void afterTextChanged(Editable editable) {int len=editable.toString().length(); if(len>4&&len<15)Toast.makeText(register.this, "班级输入符合规范!", Toast.LENGTH_SHORT).show(); } }); //判断学号输入是否规范 editText3.addTextChangedListener(new TextWatcher() {@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void afterTextChanged(Editable editable) {String ss="^[0-9]{13}$"; Pattern pattern = Pattern.compile(ss); Matcher matcher = pattern.matcher(editable.toString()); //int len=editable.toString().length(); if(matcher.matches())Toast.makeText(register.this, "学号输入符合规范!", Toast.LENGTH_SHORT).show(); } }); //判断密码输入是否规范 editText4.addTextChangedListener(new TextWatcher() {@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void afterTextChanged(Editable editable) {String ss="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,21}$";//字母数字6到15位 Pattern pattern = Pattern.compile(ss); Matcher matcher = pattern.matcher(editable.toString()); int len=editable.toString().length(); if (matcher.matches())Toast.makeText(register.this, "密码格式正确!", Toast.LENGTH_SHORT).show(); } }); //判断两次密码是否输入一致 editText5.addTextChangedListener(new TextWatcher() {@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void afterTextChanged(Editable editable) {String s1=editText4.getText().toString(); String s2=editText5.getText().toString(); if (s1.equals(s2))Toast.makeText(register.this, "两次输入密码一致!", Toast.LENGTH_SHORT).show(); } });
对于五个文本输入框的判断,分别为姓名、班级、学号、密码、二次密码,密码和班级、学号要有相应的正则表达式
2.输入提示写完后,在点击注册按钮后,还要对于整体进行一个判断
代码如下:
private boolean checkall(String s1,String s2,String s3,String s4,String s5){if(check_class(s2)&&check_idnumber(s3)&&check_password(s4,s5)&&check_username(s1)){AlertDialog.Builder dialog=new AlertDialog.Builder(register.this); dialog.setTitle("提示"); dialog.setMessage("注册成功!"); dialog.setCancelable(false); dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface dialogInterface, int i) {Intent intent = new Intent(register.this, MainActivity.class); startActivity(intent); }}); dialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface dialogInterface, int i) {Intent intent = new Intent(register.this, register.class); startActivity(intent); }}); dialog.show(); return true; }else {AlertDialog.Builder dialog=new AlertDialog.Builder(register.this); dialog.setTitle("提示"); dialog.setMessage("注册失败!"); dialog.setCancelable(false); dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface dialogInterface, int i) {Intent intent = new Intent(register.this, register.class); startActivity(intent); }}); dialog.show(); return false; }}private boolean check_username(String s){editText1=findViewById(R.id.register_inoutusername); String ss="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,15}$";//字母数字6到15位 Pattern pattern = Pattern.compile(ss); Matcher matcher = pattern.matcher(s); if(matcher.matches())return true; else return false; }private boolean check_class(String s){if(s.length()<4||s.length()>15)return false; else return true; }private boolean check_idnumber(String s){String ss="^[0-9]{13}$"; Pattern pattern = Pattern.compile(ss); Matcher matcher = pattern.matcher(s); if (matcher.matches())return true; else return false; }private boolean check_password(String s1,String s2){String ss="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,15}$";//字母数字6到15位 Pattern pattern = Pattern.compile(ss); Matcher matcher = pattern.matcher(s1); if(matcher.matches()&&s1.equals(s2))return true; else return false; } }
成功则跳转至另一界面,失败重新填写
3.数据库的插入操作,在插入之前,要先判断数据库中是否存在此数据,这里我们学号为判断条件,没有时执行插入操作,此外,只要在所有输入判断成功的条件下才能完成插入操作,代码如下所示:
Cursor cursor=db.rawQuery("select* from user where id_number =?",new String[]{s3}); if (cursor.moveToFirst()) {{Toast.makeText(register.this, "已存在用戶! 请重新输入!", Toast.LENGTH_LONG).show(); Intent intent = new Intent(register.this, register.class); startActivity(intent); }cursor.close(); break; } if (checkall(s1,s2,s3,s4,s5)) {ContentValues values=new ContentValues(); values.put("name",s1); values.put("class",s2); values.put("id_number",s3); values.put("password",s4); values.put("type",0); values.put("sign_number",0); //插入表中 //db.insert("user",null,values); dbhelper.insert(db,"user",values); values.clear(); db.close();
4.app界面
Android 在添加数据至数据库时添加控制输入语句操作相关推荐
- python将EXCEL数据导入数据库时日期型数据变成数字并加.0的问题一行代码解决方案方案
[问题描述]:python将EXCEL数据导入数据库时日期变成文本型数据并显示为数字格式 [解决方案] 数据源: codes: #!/usr/bin/python3 -- coding: utf-8 ...
- 图表嵌入到数据表格下方_在excel图表下方添加数据表 excel图表添加数据表
在excel图表下方添加数据表 excel图表添加数据表,前天刚学习了一个excel的新技术,叫"excel图表添加数据表"授课老师对我们说,这一技术的专业全称为"在ex ...
- 视频去除原声添加新的音乐时如何控制音量大小
给原视频去声添加好听的音乐可以提升视频的档次,但是如果添加的音乐太小声了怎么办?下面随小编一起用视频剪辑高手在去除原声的基础添加新的音乐时,控制音量大小. 需要哪些工具? 下载一个视频剪辑高手 多个视 ...
- SSM Mybatis将新增数据写入数据库时出现的500状态码:Error updating database.的可能...
关于maven下ssm整合的项目推荐这篇博客:https://www.cnblogs.com/yiye/p/5969157.html 今日在ssm下的将新增数据写回数据库时遇到不少的问题,现作记录 如 ...
- java access 密码_java 连接加密Access2007数据库时,不用输入用户名密码也能连上
java 连接加密Access2007数据库时,不用输入用户名密码也能连上 我用Access2007做了一个加密的数据库,用的是Access本身的功能加密的.双击打开Database2.mdb文件时, ...
- c# 中添加数据到数据库中的三种方法
1.利用SQL语句添加 在SQL语句中提供了INSERT语句进行数据添加,其语法格式如下. INSERT [Into] table_name[(column_list)] values (dat ...
- oracle用户新增数据文件,[数据库]20200722_Oracle添加表空间、用户,用户授权
[数据库]20200722_Oracle添加表空间.用户,用户授权 0 2020-07-25 17:00:30 --创建表空间CREATE TABLESPACE aifu --表空间名 aifu LO ...
- mysql 添加列_MySQL 数据库如何添加列
当进行 加列操作 时,所有的数据行 都必须要 增加一段数据(图中的 列 4 数据) 如上一期图解所讲,当改变数据行的长度,就需要 重建表空间(图中灰蓝的部分为发生变更的部分) 数据字典中的列定义也会被 ...
- vue向list中添加数据_vue点击添加数据 - osc_sjg81se7的个人空间 - OSCHINA - 中文开源技术交流社区...
通过v-model来实现数据的添加,以后会有更好的办法. 首先,写三个input 文本域,然后通过v-model 双向绑定data 里面的prop 对象里面对应的字段,里面的字段都给空字符串,因为一开 ...
最新文章
- Java-学习笔记-1-概述
- Spring+Velocity中模板路径的问题
- 网络上的两台计算机如何互相访问,怎么样使两台电脑互相访问?
- iview select 怎么清空_如何解决iview 的select下拉框选项错位的问题,具体操作如下...
- CentOS7.2安装jdk7u80
- Linux下的高级文件权限ACL
- java判断小数点后是否为0,是的话则取整,不是的话则保留
- win7创建mysql odbc数据源_Win7下如何创建odbc数据源
- 屏幕录像专家录制视频时不能全屏
- micro/微店API接口(item_search-根据关键词取商品列表)
- Gary Marcus再发万字长文,列14个QA回应机器学习批判言论
- Comodo的多域名通配符https证书
- 01-基于C++的简易技能系统实现
- matlab矩阵转入tecplot,[转载]tecplot编辑自己想要的变量
- EXCEL排名一样大的不重复
- 会计专业为什么要学python-财务人要学Python吗?
- IT网管软件比较一览表
- H5网页如何在微信中自定义分享链接
- 【四】Spring源码分析之启动主流程---AbstractApplicationContext的refresh方法
- 网站ICP备案是什么意思?和公安备案有什么区别?