这周没啥新的学习感受,因为一直是在用学到的内容做案例。
上周敲出了一个登录界面的程序,登录之前必须要进行注册,进入注册界面后可以进行注册,将第一次注册时的用户名和密码写到两个文档中,然后注册完成后会跳转到登录界面,然后输入注册好的用户名和密码,输入正确后跳转到应用的界面(一个未做好的九宫格界面)。
一、Java代码:
1、注册时将用户名和密码要写到两个文件里,密码输入两次,如果两次输入不一致无法写入,用户名和两次输入的密码如果有未填写的也无法写入,无法注册。
2、登录时定义两个字符串分别是读入之前写入的用户名和密码,然后和用户输入的用户名、密码判断是否相同,不相同无法登录。
3、修改密码放在了九宫格界面中,如要修改密码在该界面点击修改密码后跳转到修改密码的界面,只是修改的密码与之前注册的密码不在一个文件,即修改密码不会改变注册的密码。
4、忘记密码还未设计具体的代码,因为具体的逻辑还没搞清楚。
二、具体代码如下:
1、注册代码
1 packagecn.itcast.activity_login;2
3 importjava.io.FileOutputStream;4 importcn.itcast.activity_login.R;5 importandroid.os.Bundle;6 importandroid.app.Activity;7 importandroid.content.Context;8 importandroid.content.Intent;9 importandroid.text.TextUtils;10 importandroid.view.Menu;11 importandroid.view.View;12 importandroid.view.View.OnClickListener;13 importandroid.widget.Button;14 importandroid.widget.EditText;15 importandroid.widget.Toast;16
17 public class MainActivity_register extendsActivity {18 privateEditText et_rUN;19 privateEditText et_rUNP;20 privateEditText et_againRUNP;21 privateButton btn_register;22 @Override23 protected voidonCreate(Bundle savedInstanceState) {24 super.onCreate(savedInstanceState);25 setContentView(R.layout.activity_main_activity_register);26 et_rUN=(EditText)findViewById(R.id.et_rUN);27 et_rUNP=(EditText)findViewById(R.id.et_rUNP);28 et_againRUNP=(EditText)findViewById(R.id.et_againRUNP);29 btn_register=(Button)findViewById(R.id.btn_register);30 btn_register.setOnClickListener(newMyOnClicklistener());31 }32 private class MyOnClicklistener implementsOnClickListener33 {34
35 @Override36 public voidonClick(View view) {37 String saveRUN=et_rUN.getText().toString().trim();38 String saveRUNP=et_rUNP.getText().toString().trim();39 String saveAgainRUNP=et_againRUNP.getText().toString().trim();40 //TODO Auto-generated method stub
41 switch(view.getId())42 {43 caseR.id.btn_register:44 if(TextUtils.isEmpty(saveRUN)||TextUtils.isEmpty(saveRUNP)||TextUtils.isEmpty(saveAgainRUNP))45 {46 Toast.makeText(MainActivity_register.this, "您有未输入的信息!",Toast.LENGTH_SHORT).show();47 }48 else
49 {50 if(saveRUNP.equals(saveAgainRUNP))51 {52 FileOutputStream fosSaveRUN;53 FileOutputStream fosSaveRUNP;54 try
55 {56 fosSaveRUN=openFileOutput("saveRUN.txt",Context.MODE_APPEND);57 fosSaveRUN.write(saveRUN.getBytes());58 fosSaveRUN.close();59 fosSaveRUNP=openFileOutput("saveRUNP.txt",Context.MODE_APPEND);60 fosSaveRUNP.write(saveRUNP.getBytes());61 fosSaveRUNP.close();62 }63 catch(Exception e)64 {65 e.printStackTrace();66 }67 Toast.makeText(MainActivity_register.this, "已成功注册!\n用户名:"+saveRUN+"\n密码:"+saveRUNP,Toast.LENGTH_SHORT).show();68 Intent intent=new Intent(MainActivity_register.this,MainActivity_login.class);69 startActivity(intent);70 }71 else
72 {73 Toast.makeText(MainActivity_register.this, "两次输入的密码不一致!",Toast.LENGTH_SHORT).show();74 }75 }76 break;77 }78
79 }80 }81
82 @Override83 public booleanonCreateOptionsMenu(Menu menu) {84 //Inflate the menu; this adds items to the action bar if it is present.
85 getMenuInflater().inflate(R.menu.main_activity_register, menu);86 return true;87 }88
89 }
注册代码
2、登录代码
1 packagecn.itcast.activity_login;2
3
4 importjava.io.FileInputStream;5 importandroid.os.Bundle;6 importandroid.app.Activity;7 importandroid.content.Intent;8 importandroid.text.TextUtils;9 importandroid.util.Log;10 importandroid.view.Menu;11 importandroid.view.View;12 importandroid.view.View.OnClickListener;13 importandroid.widget.Button;14 importandroid.widget.CheckBox;15 importandroid.widget.EditText;16 importandroid.widget.Toast;17
18 public class MainActivity_login extendsActivity {19 privateEditText et_un;20 privateEditText et_upw;21 privateCheckBox ck_rupw;22 privateButton bt_login;23 privateButton bt_forget;24 privateButton bt_register;25
26 @Override27 protected voidonCreate(Bundle savedInstanceState) {28 super.onCreate(savedInstanceState);29 setContentView(R.layout.activity_main_activity_login);30 et_un =(EditText) findViewById(R.id.et_un);31 et_upw =(EditText) findViewById(R.id.et_upw);32 ck_rupw =(CheckBox) findViewById(R.id.ck_rupw);33 bt_login =(Button) findViewById(R.id.bt_login);34 bt_forget =(Button) findViewById(R.id.bt_forget);35 bt_register=(Button) findViewById(R.id.bt_register);36 bt_login.setOnClickListener(newMyOnClickListener());37 bt_forget.setOnClickListener(newMyOnClickListener());38 bt_register.setOnClickListener(newMyOnClickListener());39 }40
41
42 @Override43 public booleanonCreateOptionsMenu(Menu menu) {44 //Inflate the menu; this adds items to the action bar if it is present.
45 getMenuInflater().inflate(R.menu.main_activity_login, menu);46 return true;47 }48 private class MyOnClickListener implementsOnClickListener{49
50 @Override51 public voidonClick(View view) {52 String username=et_un.getText().toString();53 String password=et_upw.getText().toString();54 //TODO Auto-generated method stub
55 switch(view.getId()){56 caseR.id.bt_login:57 if(TextUtils.isEmpty(username)||TextUtils.isEmpty(password)){58 Toast.makeText(MainActivity_login.this, "用户名或密码不能为空",Toast.LENGTH_SHORT).show();59 }else{60 String readRUN="";61 String readRUNP="";62 try
63 {64 FileInputStream fisReadRUN=openFileInput("saveRUN.txt");65 byte[] bufferRUN=new byte[fisReadRUN.available()];66 fisReadRUN.read(bufferRUN);67 readRUN=newString(bufferRUN);68 fisReadRUN.close();69 //Toast.makeText(MainActivity_login.this, "用户名"+readRUN,Toast.LENGTH_SHORT).show();
70 FileInputStream fisReadRUNP=openFileInput("saveRUNP.txt");71 byte[] bufferRUNP=new byte[fisReadRUNP.available()];72 fisReadRUNP.read(bufferRUNP);73 readRUNP=newString(bufferRUNP);74 fisReadRUNP.close();75 //Toast.makeText(MainActivity_login.this, "密码"+readRUNP,Toast.LENGTH_SHORT).show();
76 }77 catch(Exception e)78 {79 e.printStackTrace();80 }81 if(username.equals(readRUN)&&password.equals(readRUNP))82 {83 if(ck_rupw.isChecked()){84 Log.i("用户名为:"+username,"密码为:"+password);85 }86 else{87 Log.i("不用记住用户名", "不用记住密码");88 }89 Intent intentL=new Intent(MainActivity_login.this,MainActivity_logined.class);90 startActivity(intentL);91 }92 else
93 {94 Toast.makeText(MainActivity_login.this, "用户名或密码输入错误",Toast.LENGTH_SHORT).show();95 }96 }97 break;98 caseR.id.bt_forget:99 Intent intentC=new Intent(MainActivity_login.this,MainActivity_forget.class);100 startActivity(intentC);101 break;102 caseR.id.bt_register:103 Intent intentR=new Intent(MainActivity_login.this,MainActivity_register.class);104 startActivity(intentR);105 break;106 }107
108 }109 }110
111 /*public void click(View view){112 Intent intent=new Intent(this,MainActivity_logined.class);113 startActivity(intent);114 }*/
115 }
登录代码
3、修改密码
1 packagecn.itcast.activity_login;2
3 importandroid.os.Bundle;4 importandroid.app.Activity;5 importandroid.content.Intent;6 importandroid.text.TextUtils;7 importandroid.view.Menu;8 importandroid.view.View;9 importandroid.view.View.OnClickListener;10 importandroid.widget.Button;11 importandroid.widget.EditText;12 importandroid.widget.Toast;13
14 public class MainActivity_changePW extendsActivity {15 privateEditText et_before;16 privateEditText et_after;17 privateEditText et_again;18 privateButton bt_submit;19 @Override20 protected voidonCreate(Bundle savedInstanceState) {21 super.onCreate(savedInstanceState);22 setContentView(R.layout.activity_main_activity_change_pw);23 et_before=(EditText)findViewById(R.id.et_before);24 et_after=(EditText)findViewById(R.id.et_after);25 et_again=(EditText)findViewById(R.id.et_again);26 bt_submit=(Button)findViewById(R.id.bt_submit);27 bt_submit.setOnClickListener(newMyOnClickListener());28 }29 private class MyOnClickListener implementsOnClickListener30 {31
32 @Override33 public voidonClick(View v) {34 String before=et_before.getText().toString();35 String after=et_after.getText().toString();36 String again=et_again.getText().toString();37 //TODO Auto-generated method stub
38 switch(v.getId())39 {40 caseR.id.bt_submit:41 if(TextUtils.isEmpty(before)||TextUtils.isEmpty(after)||TextUtils.isEmpty(again))42 {43 Toast.makeText(MainActivity_changePW.this, "您有未输入的密码!",Toast.LENGTH_SHORT).show();44 }45 else
46 {47 if(after.equals(again))48 {49 //Toast.makeText(MainActivity_changePW.this, "密码已成功修改!\n"+after+"\n"+again,Toast.LENGTH_SHORT).show();
50 Toast.makeText(MainActivity_changePW.this, "密码已成功修改!",Toast.LENGTH_SHORT).show();51 Intent intent1=new Intent(MainActivity_changePW.this,MainActivity_logined.class);52 startActivity(intent1);53 }54 else
55 {56 Toast.makeText(MainActivity_changePW.this, "修改密码两次输入不一致!",Toast.LENGTH_SHORT).show();57 }58 }59 break;60 }61 }62
63 }64
65 @Override66 public booleanonCreateOptionsMenu(Menu menu) {67 //Inflate the menu; this adds items to the action bar if it is present.
68 getMenuInflater().inflate(R.menu.main_activity_change_pw, menu);69 return true;70 }71
72 }
修改密码
三、存在的问题
1、用户名和密码写入时应该是可以重写,而不是追加,否侧无法进行修改密码;
2、每一次注册时不可能只写到一个文件中,应该是说每次注册时会写到不同的文件里,这样每个用户的资料就分开了,这样也方便之后查找用户资料;
3、注册时若用户名相同无法注册成功,这就要涉及所有用户资料的遍历,这也是以后要改进的地方;
4、修改密码时应该已经可以对用户资料进行操作,如何获取到该用户的资料的代码还没想出来;