AndroidStudio本地保存的Register

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~

posted @ 2018-08-20 21:15  凌晓纳  阅读(1389)  评论(0编辑  收藏  举报