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

Android-登陆界面,包含记住密码和自动登陆

2014-08-03 23:18 405 查看
这两天需要用到一个登陆界面,需要有记住密码和自动登陆的功能。因为之前没有做过类似的东西,而且由于对SharedPreferences也不是很熟悉,于是在网上看到一位兄弟写得很不错,代码简单易懂,于是根据他的方法做出了自己需要的效果,这就是分享的力量,所以,感谢这位兄弟。

博文连接在此:/article/8054065.html

如果对SharedPreferences也不是很清楚的话建议单独看看关于SharedPreferences的内容,在这里就不介绍了。实现效果如下



由于布局文件因为整个项目的原因用到了两个资源文件,贴出可能占稍大篇幅,这里就不给出了,相信布局对很多人来说也不是什么难事的吧。

还有这里的重置按钮没有写到,到时候连接数据库的时候再写,这里也就当忽略了。

LoginActivity.java文件:

public class LoginActivity extends Activity {
private RadioGroup login_group;
private RadioButton teacher,student;
private Button login,reset;
private EditText userName,password;
private CheckBox rem_psw,auto_login;

private String userNameValue,passwordValue;
private SharedPreferences sp;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
login = (Button) findViewById(R.id.login);
reset = (Button) findViewById(R.id.reset);
userName = (EditText) findViewById(R.id.number);
password = (EditText) findViewById(R.id.password);
rem_psw = (CheckBox) findViewById(R.id.rem_psw);
auto_login = (CheckBox) findViewById(R.id.auto_login);
login_group = (RadioGroup) findViewById(R.id.login_radiogroup);

sp = this.getSharedPreferences("userinfo", Context.MODE_WORLD_READABLE);

if(sp.getBoolean("ISCHECK", false))
{
//设置默认是记录密码状态
rem_psw.setChecked(true);
userName.setText(sp.getString("USER_NAME", ""));
password.setText(sp.getString("PASSWORD", ""));
//判断自动登陆多选框状态
if(sp.getBoolean("AUTO_ISCHECK", false))
{
//设置默认是自动登录状态
auto_login.setChecked(true);
//跳转界面
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
LoginActivity.this.startActivity(intent);

}
}
login_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub

}
});

// 登录监听事件  现在默认为用户名为:2011 密码:1234
login.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
userNameValue = userName.getText().toString();
passwordValue = password.getText().toString();

if(userNameValue.equals("2011")&&passwordValue.equals("1234"))
{
Toast.makeText(LoginActivity.this,"登录成功", Toast.LENGTH_SHORT).show();
//登录成功和记住密码框为选中状态才保存用户信息
if(rem_psw.isChecked())
{
//记住用户名、密码、
Editor editor = sp.edit();
editor.putString("USER_NAME", userNameValue);
editor.putString("PASSWORD",passwordValue);
editor.commit();
}
//跳转界面
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
LoginActivity.this.startActivity(intent);
//finish();

}else{

Toast.makeText(LoginActivity.this,"用户名或密码错误,请重新登录", Toast.LENGTH_LONG).show();
}

}
});

//监听记住密码多选框按钮事件
rem_psw.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if (rem_psw.isChecked()) {

System.out.println("记住密码已选中");
sp.edit().putBoolean("ISCHECK", true).commit();

}else {

System.out.println("记住密码没有选中");
sp.edit().putBoolean("ISCHECK", false).commit();

}
}
});

//监听自动登录多选框事件
auto_login.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if (auto_login.isChecked()) {
System.out.println("自动登录已选中");
sp.edit().putBoolean("AUTO_ISCHECK", true).commit();

} else {
System.out.println("自动登录没有选中");
sp.edit().putBoolean("AUTO_ISCHECK", false).commit();
}
}
});
}

}


记住密码和自动登陆都实现了,效果很不错。

由于代码几乎都是参考而来的,只修改了很小很小一部分,虽然斗胆将本文设置为原创,但还请各位看到的话不要忽略参考博文的地址,地址已在前面给出,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐