android登录记住密码

来源:互联网 发布:气象局和环保局知乎 编辑:程序博客网 时间:2024/05/17 22:35

网上的android登录记住密码有很多,刚开始做现在这个项目的时候就是参照网上做的。现在做个总结,以免以后忘记。

由于懒,第一次写技术博客。。。害羞

先上登录页面的效果图:



项目工程结构:


java代码就3个类,登录页面、登录后主页面、注册页面,主要功能代码就在LoginActivity里了:

1、注册按钮监听:

点击登录页面上的注册按钮,跳转到注册页面,其实就是实现一个简单的activity间的跳转。

/** * 注册按钮监听事件 */private OnClickListener mRegisterOnClickListener = new OnClickListener() {public void onClick(View v) {Intent registerIntent = new Intent(LoginActivity.this,RegisterActivity.class);startActivity(registerIntent);}};

2、更多点击监听:

“更多”是一个线性布局,它响应的事件其实就是控制初始时隐藏的布局的显示或隐藏。根据记录的当前隐藏布局的状态值来判断是执行展开显示该布局,还是收缩隐藏该布局。

/** * 更多按钮监听事件 */private OnClickListener viewMoreOnClickListener = new OnClickListener() {public void onClick(View v) {//判断更多选项展开或收起的状态if(moreStatus == 0){//将其展开moreMenuLayout.setVisibility(View.VISIBLE);moreStatus = 1;moreImg.setImageResource(R.drawable.login_more);}else{//将其收起moreMenuLayout.setVisibility(View.GONE);moreStatus = 0;moreImg.setImageResource(R.drawable.login_more_up);}}};

3、记住密码勾选框监听

savePwChb是控件勾选框,isChecked值表示是否勾选;sp是SharedPreferences的实例,用于存储一些键值对。

CHECKED_TAG键值对中的key,用于存储是否需要记住密码。

/** * 记住密码监听事件 */private OnCheckedChangeListener mSaveCheckBoxChangeListener = new OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(CompoundButton buttonVew, boolean isChecked) {// TODO Auto-generated method stubif (savePwChb.isChecked()) {                Log.i(TAG, "记住密码已选中");sp.edit().putBoolean(CHECKED_TAG, true).commit();}else {Log.i(TAG, "记住密码没有选中");sp.edit().putBoolean(CHECKED_TAG, false).commit();}}

4、登录按钮监听:

为了方便测试,本例将用户名密码设为“123”或“456”,真实项目中应当从数据库中读取判断。若用户名、密码正确,先判断是否需要记住密码,若选择记住密码则向SharedPreferences中存入用户名、密码的值,并将CHECKED_TAG的值改为true。最后跳转到主界面,并通过Toast提示登录成功。

/** * 登陆按钮监听事件 */private OnClickListener mLoginOnClickListener = new OnClickListener() {public void onClick(View v) {//获取输入框值userValue = userEdit.getText().toString();pwValue = pwEdit.getText().toString();//判断用户名密码是否正确if((userValue.equals("123")&&pwValue.equals("123"))||(userValue.equals("456")&&pwValue.equals("456"))){//判断是否需要记住密码if(savePwChb.isChecked()){//向记录密码的sp写入用户名、密码Editor editor = sp.edit();editor.putString(USER_TAG, userValue);editor.putString(PASSWORD_TAG, pwValue);editor.putBoolean(CHECKED_TAG, true);editor.commit();//提交,记录密码成功}//跳转到主界面Intent loginIntent = new Intent(LoginActivity.this,MainActivity.class);startActivity(loginIntent);Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_LONG).show();}else{Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_LONG).show();}}};


主要功能代码就是这些了。

记住密码登录示例的工程文件下载地址:http://download.csdn.net/detail/jackq28/6852571点击打开链接







0 0