如題,不過只是簡單的登錄功能,登錄成功以後可以進行的操作還沒有進行實現。
登錄的原理主要是獲取Cookies,數據保存在數據庫中。使用HttpClient模擬登錄的方式已經在另一篇博客中寫過,這裡就不再贅述。
代碼非常簡單:
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 }