autologin

import java.sql.SQLException;

import com.huawei.pom.alarm.database.dao.factory.DAOFactory;
import com.huawei.pom.alarm.model.User;
import com.huawei.pom.alarm.util.SPUtil;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends Activity
{

    private EditText usernameET;
    private EditText passwordET;
    private Button loginBut;
    private CheckBox remembCB;
    private CheckBox autologinCB;
    private static final int MSG_SUCCESS = 0; 
    private static final int MSG_FAILURE = 1;
    private static final int MSG_QUERY_MISSTAKE=2;
    private String username;
    private String password;
    private SPUtil util;
    private ProgressDialog loginDialog;
    private boolean isValidate;
    private Handler mHandler = new Handler() {
        public void handleMessage (Message msg) {
            switch(msg.what) {
            case MSG_SUCCESS:
                if(remembCB.isChecked()){
                    util.setValue("isRememberPW", true);
                    util.setValue("username", username);
                    util.setValue("password", password);
                }
                if(autologinCB.isChecked()){
                    util.setValue("isAutoLogin", true);
                }
                jumpHomePage();
                break;

            case MSG_FAILURE:
                Toast.makeText(LoginActivity.this, "登录失败,请检查用户名和密码是否正确", Toast.LENGTH_SHORT).show();
                loginDialog.dismiss();
                break;
                
            case MSG_QUERY_MISSTAKE:
                Toast.makeText(LoginActivity.this, "查询数据异常", Toast.LENGTH_SHORT).show();
                loginDialog.dismiss();
                break;              
            }
        }
    };

    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        
        util=new SPUtil(LoginActivity.this,"loginData");
        if(util.getValue("isAutoLogin", false)==true&&util.getValue("isRememberPW", false)==true){
            jumpHomePage();
        }else{
        setContentView(R.layout.login);
        initView();
        setListener();
        }
    }
    
    private void initView(){
        usernameET=(EditText)this.findViewById(R.id.login_username_edit);
        passwordET=(EditText)this.findViewById(R.id.login_password_edit);
        loginBut=(Button)this.findViewById(R.id.login_butt);
        remembCB=(CheckBox)this.findViewById(R.id.remember_pw_checkbox);
        autologinCB=(CheckBox)this.findViewById(R.id.autologin_checkbox);
        if(util.getValue("isRememberPW", false)==true){
            usernameET.setText(util.getValue("username", ""));
            passwordET.setText(util.getValue("password", ""));
        }

    }
    
    private void setListener(){
        
        
        loginBut.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0)
            {
                // TODO Auto-generated method stub
                username=usernameET.getText().toString();
                password=passwordET.getText().toString();
                
                if("".equals(username)||"".equals(password)){
                    Toast.makeText(LoginActivity.this, "用户名和密码不能为空", Toast.LENGTH_SHORT).show();
                    return;
                }else{
                    
                    //显示正在登录提示框
                    showLoginDialog();
                    
                    new Thread(runnable).start();
                }
                
            }});
    }
    
    private void jumpHomePage(){
        Intent intent=new Intent(LoginActivity.this,HomepageActivity.class);
        startActivity(intent);
    }
    
    private void showLoginDialog(){
        
        loginDialog= new ProgressDialog(LoginActivity.this);

        loginDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

        loginDialog.setTitle("请稍后");
       
        loginDialog.setMessage("正在登录");

        loginDialog.setIndeterminate(false);
       
        loginDialog.setCancelable(true);
        
        loginDialog.show();

    }
    
    Runnable runnable = new Runnable() {

        @Override
        public void run()
        {
            // TODO Auto-generated method stub
            User user=new User();
            user.setUserName(username);
            user.setUserPassword(password);
            try
            {
                isValidate=DAOFactory.getDAOFactory(LoginActivity.this).getUserDao().ifCanLogin(user);
                if(isValidate){
                    mHandler.obtainMessage(MSG_SUCCESS).sendToTarget();
                }else{
                    mHandler.obtainMessage(MSG_FAILURE).sendToTarget();
                }
            }
            catch (SQLException e)
            {
                // TODO Auto-generated catch block
                mHandler.obtainMessage(MSG_QUERY_MISSTAKE).sendToTarget();
            }

            
        }
        
        
    };

}
原文地址:https://www.cnblogs.com/leiqun123/p/3196308.html