Android 在添加数据至数据库时添加控制输入语句操作
生活随笔
收集整理的這篇文章主要介紹了
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 在添加数据至数据库时添加控制输入语句操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断一棵二叉树是否为平衡二叉树
- 下一篇: Android 中单选框或复选框点击其中