您的位置:首页 > 其它

数据储存和访问—登录记住 4000 密码功能

2016-11-16 15:21 417 查看
数据存储和访问—登录记住密码功能
实验目的

1、掌握SharedPreferences类,这个类可以实现简单的存储,主要用于保存窗口状态

实验效果


 


 


 


 



主要代码

LoginActivity

package com.example.minitwittersimulate;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;

public class LoginActivity extends Activity {

static String YES = "yes";
static String NO = "no";
private CheckBox checkBox1;
private Button login;
private EditText edtuser, edtpsd;
static String name, password;
private String isMemory = "";// isMemory变量用来判断SharedPreferences有没有数据,包括上面的YES和NO
private String FILE = "saveUserNamePwd";// 用于保存SharedPreferences的文件
private SharedPreferences sp = null;// 声明一个SharedPreferences

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_login);

login = (Button) findViewById(R.id.btnLogin);
edtuser = (EditText) findViewById(R.id.etUsername);
edtpsd = (EditText) findViewById(R.id.etPassword);
checkBox1 = (CheckBox) findViewById(R.id.cbRememberPass);
sp = getSharedPreferences(FILE, MODE_PRIVATE);
isMemory = sp.getString("isMemory", NO);
// 进入界面时,这个if用来判断SharedPreferences里面name和password有没有数据,有的话则直接打在EditText上面
if (isMemory.equals(YES)) {
name = sp.getString("name", "");
password = sp.getString("password", "");
edtuser.setText(name);
edtpsd.setText(password);
}
Editor editor = sp.edit();
editor.putString(name, edtuser.toString());
editor.putString(password, edtpsd.toString());
editor.commit();
// 触击登录按钮,执行remenber方法文本框里的信息重新写入SharedPreferences里面覆盖之前的,去除掉勾选框,触击登录按钮执行remenber方法就将之前保存到SharedPreferences的数据清除了
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
name = edtuser.getText().toString();
password = edtpsd.getText().toString();
remenber();
Intent it = new Intent(LoginActivity.this, MainActivity.class);// 跳转
startActivity(it);
}
});
}

// remenber方法用于判断是否记住密码,checkBox1选中时,提取出EditText里面的内容,放到SharedPreferences里面的name和password中
public void remenber() {
if (checkBox1.isChecked()) {
if (sp == null) {
sp = getSharedPreferences(FILE, MODE_PRIVATE);
}
Editor edit = sp.edit();
edit.putString("name", edtuser.getText().toString());
edit.putString("password", edtpsd.getText().toString());
edit.putString("isMemory", YES);
edit.commit();
} else if (!checkBox1.isChecked()) {
if (sp == null) {
sp = getSharedPreferences(FILE, MODE_PRIVATE);
}
Editor edit = sp.edit();
edit.putString("isMemory", NO);
edit.commit();
}
}
}
实验反思

不断加强读代码的能力,多看案例;

提高相关方法的熟练程度;

不能忽视细节;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐