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 在添加数据至数据库时添加控制输入语句操作相关推荐

  1. python将EXCEL数据导入数据库时日期型数据变成数字并加.0的问题一行代码解决方案方案

    [问题描述]:python将EXCEL数据导入数据库时日期变成文本型数据并显示为数字格式 [解决方案] 数据源: codes: #!/usr/bin/python3 -- coding: utf-8 ...

  2. 图表嵌入到数据表格下方_在excel图表下方添加数据表 excel图表添加数据表

    在excel图表下方添加数据表 excel图表添加数据表,前天刚学习了一个excel的新技术,叫"excel图表添加数据表"授课老师对我们说,这一技术的专业全称为"在ex ...

  3. 视频去除原声添加新的音乐时如何控制音量大小

    给原视频去声添加好听的音乐可以提升视频的档次,但是如果添加的音乐太小声了怎么办?下面随小编一起用视频剪辑高手在去除原声的基础添加新的音乐时,控制音量大小. 需要哪些工具? 下载一个视频剪辑高手 多个视 ...

  4. SSM Mybatis将新增数据写入数据库时出现的500状态码:Error updating database.的可能...

    关于maven下ssm整合的项目推荐这篇博客:https://www.cnblogs.com/yiye/p/5969157.html 今日在ssm下的将新增数据写回数据库时遇到不少的问题,现作记录 如 ...

  5. java access 密码_java 连接加密Access2007数据库时,不用输入用户名密码也能连上

    java 连接加密Access2007数据库时,不用输入用户名密码也能连上 我用Access2007做了一个加密的数据库,用的是Access本身的功能加密的.双击打开Database2.mdb文件时, ...

  6. c# 中添加数据到数据库中的三种方法

    1.利用SQL语句添加    在SQL语句中提供了INSERT语句进行数据添加,其语法格式如下. INSERT [Into] table_name[(column_list)] values (dat ...

  7. oracle用户新增数据文件,[数据库]20200722_Oracle添加表空间、用户,用户授权

    [数据库]20200722_Oracle添加表空间.用户,用户授权 0 2020-07-25 17:00:30 --创建表空间CREATE TABLESPACE aifu --表空间名 aifu LO ...

  8. mysql 添加列_MySQL 数据库如何添加列

    当进行 加列操作 时,所有的数据行 都必须要 增加一段数据(图中的 列 4 数据) 如上一期图解所讲,当改变数据行的长度,就需要 重建表空间(图中灰蓝的部分为发生变更的部分) 数据字典中的列定义也会被 ...

  9. vue向list中添加数据_vue点击添加数据 - osc_sjg81se7的个人空间 - OSCHINA - 中文开源技术交流社区...

    通过v-model来实现数据的添加,以后会有更好的办法. 首先,写三个input 文本域,然后通过v-model 双向绑定data 里面的prop 对象里面对应的字段,里面的字段都给空字符串,因为一开 ...

最新文章

  1. Java-学习笔记-1-概述
  2. Spring+Velocity中模板路径的问题
  3. 网络上的两台计算机如何互相访问,怎么样使两台电脑互相访问?
  4. iview select 怎么清空_如何解决iview 的select下拉框选项错位的问题,具体操作如下...
  5. CentOS7.2安装jdk7u80
  6. Linux下的高级文件权限ACL
  7. java判断小数点后是否为0,是的话则取整,不是的话则保留
  8. win7创建mysql odbc数据源_Win7下如何创建odbc数据源
  9. 屏幕录像专家录制视频时不能全屏
  10. micro/微店API接口(item_search-根据关键词取商品列表)
  11. Gary Marcus再发万字长文,列14个QA回应机器学习批判言论
  12. Comodo的多域名通配符https证书
  13. 01-基于C++的简易技能系统实现
  14. matlab矩阵转入tecplot,[转载]tecplot编辑自己想要的变量
  15. EXCEL排名一样大的不重复
  16. 会计专业为什么要学python-财务人要学Python吗?
  17. IT网管软件比较一览表
  18. H5网页如何在微信中自定义分享链接
  19. 【四】Spring源码分析之启动主流程---AbstractApplicationContext的refresh方法
  20. 网站ICP备案是什么意思?和公安备案有什么区别?

热门文章

  1. listView分批和分页加载数据
  2. 【推荐系统】基于物品的协同过滤算法
  3. 八十四、Python | Leetcode回溯算法系列
  4. 探寻AI未来式,百度AI Studio两周年寻最强锦鲤送超大惊喜
  5. 建议收藏!近期值得读的 9 篇「对抗样本」最新论文
  6. 超全总结:神经网络加速之量化模型 | 附带代码
  7. 求取给定的二叉树的镜像_17---二叉树的镜像
  8. vectorC++索引_MySQL 的覆盖索引与回表
  9. 如何使用计算机中的导出,如何将iPhone手机中的音乐导出至电脑
  10. spring-基于xml的aop开发-快速入门