android简单功能之——用sharedPreferences实现记住用户名和密码

1.关于sharedPreferences:

    SharedPreferences是Android系统中提供的一种使用键值对形式存储数据的方式,特点是使用简单方便,缺点是由于功能简单,存储的数据形式有限,只能用作简单的数据存储。

由于SharedPreferences是一个接口,而且在这个接口里没有提供写入数据和读取数据的能力。但它是通过其Editor接口中的一些方法来操作SharedPreference的,用法见下面代码:

Context.getSharedPreferences(String name,int mode)来得到一个SharedPreferences实例

name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。

mode:是指定读写方式,其值有三种,分别为:

Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写

Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写

Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。


2.使用方法:

  1. 直接声明一个SharedPreferences对象
  2. 使用getSharedPreferences();方法获取实例
  3. 使用SharedPreferences中的edit方法进行数据的编辑、添加、删除和存储。

3.使用时要注意的问题:

SharedPreferences对象本身只能读取,而不能编辑、删除和储存,要操作数据必须使用edit方法。使用edit方法操作数据之后一定要使用Preferences中的edito.commit();方法提交,才能成功操作。SharedPreferences使用键值对的方式储存数据,因此无法操作过于复杂的数据。

小Demo代码实现:



public class Login 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
 
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
login = (Button) findViewById(R.id.login);
edtuser = (EditText) findViewById(R.id.edtuser);
edtpsd = (EditText) findViewById(R.id.edtpsd);
checkBox1 = (CheckBox) findViewById(R.id.checkbox1);
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(Login.this, Message.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();
}
}

你可能感兴趣的:(Android菜鸟)