android项目——登录界面

  这周没啥新的学习感受,因为一直是在用学到的内容做案例。

  上周敲出了一个登录界面的程序,登录之前必须要进行注册,进入注册界面后可以进行注册,将第一次注册时的用户名和密码写到两个文档中,然后注册完成后会跳转到登录界面,然后输入注册好的用户名和密码,输入正确后跳转到应用的界面(一个未做好的九宫格界面)。

  一、Java代码:

  1、注册时将用户名和密码要写到两个文件里,密码输入两次,如果两次输入不一致无法写入,用户名和两次输入的密码如果有未填写的也无法写入,无法注册。

  2、登录时定义两个字符串分别是读入之前写入的用户名和密码,然后和用户输入的用户名、密码判断是否相同,不相同无法登录。

  3、修改密码放在了九宫格界面中,如要修改密码在该界面点击修改密码后跳转到修改密码的界面,只是修改的密码与之前注册的密码不在一个文件,即修改密码不会改变注册的密码。

  4、忘记密码还未设计具体的代码,因为具体的逻辑还没搞清楚。

  二、具体代码如下:

  1、注册代码

 1 package cn.itcast.activity_login;
 2 
 3 import java.io.FileOutputStream;
 4 import cn.itcast.activity_login.R;
 5 import android.os.Bundle;
 6 import android.app.Activity;
 7 import android.content.Context;
 8 import android.content.Intent;
 9 import android.text.TextUtils;
10 import android.view.Menu;
11 import android.view.View;
12 import android.view.View.OnClickListener;
13 import android.widget.Button;
14 import android.widget.EditText;
15 import android.widget.Toast;
16 
17 public class MainActivity_register extends Activity {
18     private EditText et_rUN;
19     private EditText et_rUNP;
20     private EditText et_againRUNP;
21     private Button btn_register;
22     @Override
23     protected void onCreate(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(new MyOnClicklistener());
31     }
32      private class MyOnClicklistener implements OnClickListener
33      {
34 
35         @Override
36         public void onClick(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             case R.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     @Override
83     public boolean onCreateOptionsMenu(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 package cn.itcast.activity_login;
  2 
  3 
  4 import java.io.FileInputStream;
  5 import android.os.Bundle;
  6 import android.app.Activity;
  7 import android.content.Intent;
  8 import android.text.TextUtils;
  9 import android.util.Log;
 10 import android.view.Menu;
 11 import android.view.View;
 12 import android.view.View.OnClickListener;
 13 import android.widget.Button;
 14 import android.widget.CheckBox;
 15 import android.widget.EditText;
 16 import android.widget.Toast;
 17 
 18 public class MainActivity_login extends Activity {
 19     private EditText et_un;
 20     private EditText et_upw;
 21     private CheckBox ck_rupw;
 22     private Button bt_login;
 23     private Button bt_forget;
 24     private Button bt_register;
 25 
 26     @Override
 27     protected void onCreate(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(new MyOnClickListener());
 37         bt_forget.setOnClickListener(new MyOnClickListener());
 38         bt_register.setOnClickListener(new MyOnClickListener());
 39     }
 40 
 41 
 42     @Override
 43     public boolean onCreateOptionsMenu(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 implements OnClickListener{
 49 
 50         @Override
 51         public void onClick(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                 case R.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=new String(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=new String(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                 case R.id.bt_forget:
 99                         Intent intentC=new Intent(MainActivity_login.this,MainActivity_forget.class);
100                         startActivity(intentC);
101                     break;
102                 case R.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 package cn.itcast.activity_login;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.content.Intent;
 6 import android.text.TextUtils;
 7 import android.view.Menu;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11 import android.widget.EditText;
12 import android.widget.Toast;
13 
14 public class MainActivity_changePW extends Activity {
15     private EditText et_before;
16     private EditText et_after;
17     private EditText et_again;
18     private Button bt_submit;
19     @Override
20     protected void onCreate(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(new MyOnClickListener());
28     }
29     private class MyOnClickListener implements OnClickListener
30     {
31 
32         @Override
33         public void onClick(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             case R.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     @Override
66     public boolean onCreateOptionsMenu(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、修改密码时应该已经可以对用户资料进行操作,如何获取到该用户的资料的代码还没想出来;

posted @ 2016-05-23 16:28  user_jxt  阅读(6685)  评论(0编辑  收藏  举报