随意


public class LoginActivity extends AppCompatActivity implements
        OnClickListener, OnCheckedChangeListener {
    private final static String LOG_TAG = LoginActivity.class.getSimpleName();

    private Button mLoginButton;

//  private Button mForgetPasswordButton;

    private CheckBox mCheckBox;

    private EditText mUsernameEditText, mPwdEditText;

    private LoginDaoImpl mLoginDao;

    private SharedPreferences sharedPreferences;

    private int Toast_durace_time = 10;

    private Editor editor;

    private String userName;

    private String userPassword;

    private ProgressDialog loadingDialog;

    private Context context;

    OnLoginListener mOnLoginListener = new OnLoginListener() {

        @Override
        public void onSuccess(String cookies) {

            Log.i(LOG_TAG, "token=" + cookies);
            loadingDialog.dismiss();
            JsonObject jsonObject = new JsonParser().parse(cookies)
                    .getAsJsonObject();
            Boolean status = Boolean.valueOf(jsonObject.get("status")
                    .toString());
            Log.i(LOG_TAG, status + " ");
            if (status) {
                LoginResult loginResult = GsonTools.changeGsonToBean(cookies,
                        LoginResult.class);
                Log.i(LOG_TAG, loginResult.getStatus());
                saveUserInformation(loginResult);
                Bundle bundle = new Bundle();
                bundle.putString("userName", userName);
                bundle.putSerializable(Constants.LOGINRESULT, loginResult);
                SharedPreferences preferences = getSharedPreferences ("userName", MODE_PRIVATE);
                Editor edit = preferences.edit ();
                edit.putString (Constants.USER_NAME, userName);
                edit.commit ();
                Intent intent = new Intent(LoginActivity.this,
                        MainActivity.class);
                intent.putExtras(bundle);
                startActivity(intent);
                LoginActivity.this.finish();
            } else {
                Toast.makeText(context, "错误的用户名或密码", Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onFailed(String errorMsg) {
            Log.i(LOG_TAG, "errorMsg==" + errorMsg);
            Toast.makeText(getApplicationContext(), errorMsg,
                    Toast.LENGTH_SHORT).show();
            loadingDialog.dismiss();
        }
    };

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        context = getApplicationContext();
        loadingDialog = new ProgressDialog(this,
                ProgressDialog.THEME_DEVICE_DEFAULT_LIGHT);
        loadingDialog.setTitle("登录");
        loadingDialog.setMessage("正在登录,请稍后...");
        loadingDialog.setCancelable(false);

        mLoginDao = new LoginDaoImpl();
        sharedPreferences = getSharedPreferences(Constants.USER_INFO,
                Context.MODE_PRIVATE);
        editor = sharedPreferences.edit();
        initView();
        getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    }

    private void initView() {
        mLoginButton = (Button) findViewById(R.id.btn_Login);
//      mForgetPasswordButton = (Button) findViewById(R.id.btn_forgetPassword);
        mLoginButton.setOnClickListener(this);
//      mForgetPasswordButton.setOnClickListener(this);
        mCheckBox = (CheckBox) findViewById(R.id.checkbox);
        mCheckBox.setOnCheckedChangeListener(this);
        mUsernameEditText = (EditText) findViewById(R.id.etUsername);
        mPwdEditText = (EditText) findViewById(R.id.etPassword);

    }

    public void onResume() {
        super.onResume();
        mUsernameEditText.setText(sharedPreferences.getString(
                Constants.USER_NAME, null));
        mPwdEditText.setText(sharedPreferences.getString(
                Constants.USER_PASSWORD, null));
        mCheckBox.setChecked(sharedPreferences.getBoolean(
                Constants.KEEP_PASSWORD, false));
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id) {
        case R.id.btn_Login:
            Log.i(LOG_TAG, "login button is ckilcked");
            login();
            break;

    /*  case R.id.btn_forgetPassword:
            forgetPassword();
            break;
*/
        default:
            break;
        }

    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            mCheckBox.setChecked(true);
            saveUserNameAndPassword();
        } else {
            mCheckBox.setChecked(false);
            editor.putBoolean(Constants.KEEP_PASSWORD, false);
            editor.clear();
            editor.commit();
        }
    }

    /**
     * user login
     * 
     * @return null
     */
    public void login() {
        userName = mUsernameEditText.getText().toString().trim();
        userPassword = mPwdEditText.getText().toString().trim();
        if (mCheckBox.isChecked()) {
            saveUserNameAndPassword();
        }
        if (TextUtils.isEmpty(userName) || TextUtils.isEmpty(userPassword)) {
            Toast.makeText(this, "请输入用户名密码", Toast_durace_time).show();
        } else {
            mLoginDao.login(userName, userPassword, this);
            mLoginDao.setOnLoginListener(mOnLoginListener);
            loadingDialog.show();
        }

    }

//  /**
//   * Help user to get password when they forget password
//   * 
//   * @return null
//   */
//  public void forgetPassword() {
//      Intent intent = new Intent(this, ForgotPasswordActivity.class);
//      startActivity(intent);
//  }

    /**
     * Save userName and userPassword
     * 
     * @return void
     */
    public void saveUserNameAndPassword() {
        editor.putString(Constants.USER_NAME, mUsernameEditText.getText()
                .toString());
        editor.putString(Constants.USER_PASSWORD, mPwdEditText.getText()
                .toString());
        editor.putBoolean(Constants.KEEP_PASSWORD, true);
        editor.commit();
    }

    /**
     * Save user information when user login successfully
     * 
     * @param loginResult
     * @return void
     */
    public void saveUserInformation(LoginResult loginResult) {
        editor.putInt(Constants.USER_ID, loginResult.getMessage().getId());
        editor.putInt(Constants.USER_ROLE_ID, loginResult.getMessage()
                .getRoleId());
        editor.putString(Constants.USER_TOKEN, loginResult.getMessage()
                .getToken());
        editor.commit();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值