如題,不過只是簡單的登錄功能,登錄成功以后可以進行的操作還沒有進行實現。
登錄的原理主要是獲取Cookies,數據保存在數據庫中。使用HttpClient模擬登錄的方式已經在另一篇博客中寫過,這里就不再贅述。
博客地址:http://www.cnblogs.com/zhangtingkuo/p/3968450.html
登錄的流程如圖所示:
代碼非常簡單:
SplashActivity:
1 if (Personal.isLogin(this)) { 2 Config.FLAG_LOGIN = true; 3 } 4 5 final Intent intent; 6 if (Config.FLAG_LOGIN) { 7 intent = new Intent(SplashActivity.this, MainActivity.class); 8 } else { 9 intent = new Intent(SplashActivity.this, LoginActivity.class); 10 }
LoginActivity
1 private void setListener() { 2 OnClickListener listener = new OnClickListener() { 3 4 @Override 5 public void onClick(View v) { 6 7 if (v.getId() == buttonLogin.getId()) { 8 userName = editTextUserName.getText().toString(); 9 password = editTextPassword.getText().toString(); 10 loginUrl = Config.LOGIN_RUL; 11 if (userName.trim().equals("")) { 12 13 } else if (userName.trim().equals("")) { 14 15 } else { 16 login(); 17 } 18 } else if (v.getId() == buttonVisitor.getId()) { 19 Intent intent = new Intent(LoginActivity.this, 20 MainActivity.class); 21 startActivity(intent); 22 LoginActivity.this.finish(); 23 } 24 25 } 26 }; 27 28 buttonLogin.setOnClickListener(listener); 29 buttonVisitor.setOnClickListener(listener); 30 } 31 32 private void login() { 33 LoginDialog dialog = new LoginDialog(this); 34 ProgressCallBack callBack = new ProgressCallBack() { 35 36 @Override 37 public void action() { 38 cookie = Personal.Login(userName, password, loginUrl); 39 if (cookie != null) { 40 DBUtils.addCookie(LoginActivity.this, userName, cookie); 41 Intent intent = new Intent(LoginActivity.this, 42 MainActivity.class); 43 startActivity(intent); 44 LoginActivity.this.finish(); 45 Config.FLAG_LOGIN = true; 46 } 47 } 48 }; 49 50 dialog.showProgressDialog("登錄", "正在登錄 ...", callBack); 51 52 }
登錄效果如下:
第一次做項目,對整個結構難以把握,代碼結構總是在修改。為了有個更直觀的認識,總結了一下整個軟件的運行流程,不包括ActionBar中的一下功能。