如题,不过只是简单的登录功能,登录成功以后可以进行的操作还没有进行实现。
登录的原理主要是获取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中的一下功能。