首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

登陆印证

2012-10-10 
登陆验证package src.siwi.map.android?import java.io.DataInputStreamimport java.net.HttpURLConnect

登陆验证

package src.siwi.map.android;

?

import java.io.DataInputStream;

import java.net.HttpURLConnection;

import java.net.URL;

?

import android.app.Activity;

import android.app.AlertDialog;

import android.app.ProgressDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.CompoundButton;

import android.widget.EditText;

import android.widget.Toast;

import android.widget.CompoundButton.OnCheckedChangeListener;

?

public class Login extends Activity {

private String userName;

private String password;

private EditText view_userName;

private EditText view_password;

private CheckBox view_rememberMe;

private Button view_loginSubmit;

private static final int MENU_EXIT = Menu.FIRST - 1;

private static final int MENU_ABOUT = Menu.FIRST;

private final String SHARE_LOGIN_TAG = "MAP_SHARE_LOGIN_TAG";

?

private String SHARE_LOGIN_USERNAME = "MAP_LOGIN_USERNAME";

private String SHARE_LOGIN_PASSWORD = "MAP_LOGIN_PASSWORD";

private boolean isNetError;

private ProgressDialog proDialog;

?

Handler loginHandler = new Handler() {

public void handleMessage(Message msg)?

{

isNetError = msg.getData().getBoolean("isNetError");

if(proDialog != null)?

{

proDialog.dismiss();

}

if(isNetError)?

{

Toast.makeText(Login.this, "当前网络不可用",

Toast.LENGTH_SHORT).show();

}

else?

{

Toast.makeText(Login.this, "错误的用户名或密码",

Toast.LENGTH_SHORT).show();

clearSharePassword();

}

}

};

?

?

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.login);

findViewsById();

initView(false);

setListener();

}

?

?

private void findViewsById() {

view_userName = (EditText)findViewById(R.id.loginUserNameEdit);

view_password = (EditText)findViewById(R.id.loginPasswordEdit);

view_rememberMe = (CheckBox)findViewById(R.id.loginRememberMeCheckBox);

view_loginSubmit = (Button)findViewById(R.id.loginSubmit);

}

?

private void initView(boolean isRememberMe) {

SharedPreferences share = getSharedPreferences(SHARE_LOGIN_TAG, 0);

String userName = share.getString(SHARE_LOGIN_USERNAME, "");

String password = share.getString(SHARE_LOGIN_PASSWORD, "");

Log.d(this.toString(), "userName=" + userName + " password=" + password);

if (!"".equals(userName)) {

view_userName.setText(userName);

}

if (!"".equals(password)) {

view_password.setText(password);

view_rememberMe.setChecked(true);

}

if (view_password.getText().toString().length() > 0) {

// view_loginSubmit.requestFocus();

// view_password.requestFocus();

}

share = null;

}

?

private boolean validateLocalLogin(String userName, String password, String validateUrl) {

boolean loginState = false;

HttpURLConnection conn = null;

DataInputStream dis = null;

try?

{

URL url = new URL(validateUrl);

conn = (HttpURLConnection)url.openConnection();

conn.setConnectTimeout(5000);

conn.setRequestMethod("GET");

conn.connect();

dis = new DataInputStream(conn.getInputStream());

if(conn.getResponseCode() != HttpURLConnection.HTTP_OK)?

{

Log.d(this.toString(), "HTTP ERROR");

isNetError = true;

return false;

}

int loginStateInt = dis.read();

?

Log.v("loginState", String.valueOf(loginStateInt));

if(loginStateInt == 1)?

{

loginState = true;

}

}?

catch (Exception e)?

{

e.printStackTrace();

isNetError = true;

Log.d(this.toString(), e.getMessage() + " ?127 line");

}?

finally?

{

if(conn != null)?

{

conn.disconnect();

}

}

if(loginState)?

{

if(isRememberMe())?

{

saveSharePreferences(true, true);

}?

else?

{

saveSharePreferences(true, false);

}

}?

else?

{

if(!isNetError)

{

clearSharePassword();

}

}

if(!view_rememberMe.isChecked())?

{

clearSharePassword();

}

Log.v("loginState", String.valueOf(loginState));

return loginState;

}

?

private void saveSharePreferences(boolean saveUserName, boolean savePassword) {

SharedPreferences share = getSharedPreferences(SHARE_LOGIN_TAG, 0);

if(saveUserName) {

Log.d(this.toString(), "saveUserName="

+ view_userName.getText().toString());

share.edit().putString(SHARE_LOGIN_USERNAME,

view_userName.getText().toString()).commit();

}

if (savePassword) {

share.edit().putString(SHARE_LOGIN_PASSWORD,

view_password.getText().toString()).commit();

}

share = null;

}

?

private boolean isRememberMe() {

if (view_rememberMe.isChecked()) {

return true;

}

return false;

}

?

private OnClickListener submitListener = new OnClickListener() {

public void onClick(View v) {

proDialog = ProgressDialog.show(Login.this, "请稍候",

"", true, true);

Thread loginThread = new Thread(new LoginFailureHandler());

loginThread.start();

}

};

?

// .start();

// }

// };

?

private OnCheckedChangeListener rememberMeListener = new OnCheckedChangeListener() {

?

?

public void onCheckedChanged(CompoundButton buttonView,

boolean isChecked) {

if (view_rememberMe.isChecked()) {

Toast.makeText(Login.this, "ischecked",

Toast.LENGTH_SHORT).show();

}

}

};

?

?

?

private void setListener() {

view_loginSubmit.setOnClickListener(submitListener);

view_rememberMe.setOnCheckedChangeListener(rememberMeListener);

}

?

public boolean onCreateOptionsMenu(Menu menu) {

super.onCreateOptionsMenu(menu);

menu.add(0, MENU_EXIT, 0, getResources().getText(R.string.MENU_EXIT));

menu.add(0, MENU_ABOUT, 0, getResources().getText(R.string.MENU_ABOUT));

return true;

}

?

?

public boolean onMenuItemSelected(int featureId, MenuItem item) {

super.onMenuItemSelected(featureId, item);

switch (item.getItemId()) {

case MENU_EXIT:

finish();

break;

case MENU_ABOUT:

alertAbout();

break;

}

return true;

}

?

private void alertAbout() {

new AlertDialog.Builder(Login.this).setTitle(R.string.MENU_ABOUT)

.setMessage(R.string.aboutInfo).setPositiveButton(

R.string.ok_label,

new DialogInterface.OnClickListener() {

public void onClick(

DialogInterface dialoginterface, int i) {

}

}).show();

}

?

?

private void clearSharePassword() {

SharedPreferences share = getSharedPreferences(SHARE_LOGIN_TAG, 0);

share.edit().putString(SHARE_LOGIN_PASSWORD, "").commit();

share = null;

}

?

class LoginFailureHandler implements Runnable {

?

public void run() {

userName = view_userName.getText().toString();

password = view_password.getText().toString();

String validateURL="http://10.0.2.2:8080/androidShopServer/loginCheck.action?userName="

+ userName + "&password=" + password;

boolean loginState = validateLocalLogin(userName, password,

validateURL);

Log.d(this.toString(), "validateLogin");

?

if(loginState)?

{

Intent intent = new Intent();

intent.setClass(Login.this, IndexPage.class);

Bundle bundle = new Bundle();

bundle.putString("MAP_USERNAME", userName);

intent.putExtras(bundle);

startActivity(intent);

proDialog.dismiss();

} else {

Message message = new Message();

Bundle bundle = new Bundle();

bundle.putBoolean("isNetError", isNetError);

message.setData(bundle);

loginHandler.sendMessage(message);

}

}

?

}

}


热点排行