AndroidStudio 3.1.4
1.界面由5个TextView和3个TextEdit还有2个Button组成
2.按钮的按下事件分别为reg和del,各组件ID如下图
3.项目名为:Register 布局界面文件名称为activity_register.xml
4.代码如下:
首先,定义一个函数 thisif 函数名可以自拟,用于判断输入的内容是否合法
1 public boolean thisif(){ 2 3 //创建三个信息框留作备用 4 AlertDialog.Builder message1 = new AlertDialog.Builder(this); 5 message1.setMessage("密码或确认密码不能为空!"); 6 message1.setPositiveButton("确定",click1); 7 AlertDialog me1 = message1.create(); 8 9 AlertDialog.Builder message2 = new AlertDialog.Builder(this); 10 message2.setMessage("账号不能为空!"); 11 message2.setPositiveButton("确定",click1); 12 AlertDialog me2 = message2.create(); 13 14 AlertDialog.Builder message3 = new AlertDialog.Builder(this); 15 message3.setMessage("两次输入密码不匹配!"); 16 message3.setPositiveButton("确定",click1); 17 AlertDialog me3 = message3.create(); 18 19 //获取三个TextEdit的内容 20 EditText et = (EditText)findViewById(R.id.userEdit); 21 String user = et.getText().toString(); 22 23 EditText password1 = (EditText)findViewById(R.id.EditPW1); 24 String pw1 = password1.getText().toString(); 25 26 EditText password2 = (EditText)findViewById(R.id.EditPW2); 27 String pw2 = password2.getText().toString(); 28 29 //首先判断密码编辑框是否输入内容 30 if (pw1 == null || pw1.length() == 0 || pw2 == null || pw2.length() == 0){ 31 //如果没有输入内容则弹出信息框1 32 me1.show(); 33 return false; 34 }else if (user == null || user.length() == 0){ 35 //如果账号没有输入内容则弹出信息框2 36 me2.show(); 37 return false; 38 } 39 40 if (pw1.equals(pw2)){ 41 //验证完成返回真 42 return true; 43 }else { 44 //如果两次输入的密码不同则弹出信息框3 45 me3.show(); 46 return false; 47 } 48 }
新建一个函数 thisfileexist 函数名可以自拟,用于验证文件是否存在,1个参数,参数为文件名
1 public boolean thisfileexist(String file){ 2 //定义数组f1 3 String[] f1; 4 //将获取到的私有文件列表保存到数组f1 5 f1 = fileList(); 6 7 int i; 8 //依次抽取数组成员与要创建的文件名进行比对 9 for (i = 0 ; i < f1.length ; i++){ 10 if (f1[i].equals(file)){ 11 //如果一样则代表文件存在,返回真 12 return true; 13 } 14 } 15 //循环完成依旧没有匹配项,则代表文件不存在,返回假 16 return false; 17 }
需要一个函数写文件,函数名为 thiswrite 参数2个 参数一为欲写入的数据,参数二为文件名
1 public void thiswrite(String data,String fileName){ 2 AlertDialog.Builder message = new AlertDialog.Builder(this); 3 message.setPositiveButton("确定",click1); 4 5 //验证文件是否已经存在 6 if (thisfileexist(fileName)){ 7 8 message.setMessage("用户名已被注册!"); 9 AlertDialog me = message.create(); 10 me.show(); 11 12 return; 13 } 14 15 //写到私有文件目录 16 17 try { 18 //私有文件写入方法openFileOutput,属性为仅允许本程序更改 MODE_PRIVATE 19 FileOutputStream fout = openFileOutput(fileName,MODE_PRIVATE); 20 //数据类型转换 21 byte[] bytes = data.getBytes(); 22 //写到文件 23 fout.write(bytes); 24 fout.close(); 25 26 message.setMessage("注册账号成功!"); 27 AlertDialog m1 = message.create(); 28 m1.show(); 29 30 //System.out.println("创建成功!"); 31 32 }catch (IOException e){ 33 e.printStackTrace(); 34 35 message.setMessage("写入文件失败!"); 36 AlertDialog m2 = message.create(); 37 m2.show(); 38 39 //System.out.println("创建失败!"); 40 } 41 42 }
函数 thisdel 用于清除之前保存的账号
1 public void thisdel(){ 2 AlertDialog.Builder message = new AlertDialog.Builder(this); 3 message.setPositiveButton("确定",click1); 4 5 //获取所有私有目录文件 6 String[] file; 7 file = fileList(); 8 int i; 9 for (i = 0 ; i < file.length ; i++ ){ 10 //循环删除每一个文件 11 System.out.println(file[i]); 12 deleteFile(file[i]); 13 } 14 message.setMessage("缓存删除完成!"); 15 AlertDialog M1 = message.create(); 16 M1.show(); 17 }
补充一个弹出的信息框的按钮按下接收的函数
1 private DialogInterface.OnClickListener click1 = new DialogInterface.OnClickListener() { 2 @Override 3 public void onClick(DialogInterface dialog, int which) { 4 dialog.cancel(); 5 } 6 };
当注册按钮被按下时执行的函数
1 public void reg(View view){ 2 //验证用户输入的信息是否合法 3 if (thisif() == true){ 4 //合法则获取用户输入的内容 5 EditText user = (EditText)findViewById(R.id.userEdit); 6 EditText pw = (EditText)findViewById(R.id.EditPW1); 7 8 String data = pw.getText().toString(); 9 String file = user.getText().toString() + ".txt"; 10 //对获取的内容进行保存 11 thiswrite(data,file); 12 13 //这一句是调试输出的 14 System.out.println("true"); 15 16 }else{ 17 18 //如果不合法则不保存数据 19 System.out.println("false"); 20 21 } 22 23 }
当用户按下清除缓存按钮的函数
1 public void del(View view){ 2 3 //清除所有保存的文件 4 thisdel(); 5 6 }
5.写完以后就可以调试啦!Lucky~