如题,不过只是简单的登录功能,登录成功以后可以进行的操作还没有进行实现。
登录的原理主要是获取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中的一下功能。
项目地址:https://github.com/ZhangTingkuo/AndroidCnblogs