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~