您的位置:首页 > 移动开发 > Android开发

android登录记住密码

2014-01-15 19:21 357 查看
网上的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点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: