android登录记住密码

网上的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(){

		@Override
		public void onCheckedChanged(CompoundButton buttonVew, boolean isChecked) {
			// TODO Auto-generated method stub
			if (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点击打开链接







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值