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(); } } }; }