Android 存储学习之使用SharedPreference保存文件

2022-05-08 16:34:50 浏览数 (1)

上两节我们都是使用文本文件保存用户的信息,这明显是存在漏洞的。同时对文件中的内容不好管理。今天我们学习用SharedPreference保存。sharedPreference是专门保存一些比较零散的数据的。

我们还是用上节的例子分析,将用户的信息使用SharedPreference来保存。

注意:如果不知道是什么例子,请看Android 存储学习之在内部存储中读写文件

当点击确定按钮后,就会保存用户的信息:

代码语言:javascript复制
public void login(View v)
{
	String name = ed_nam.getText().toString();
	String passwd = ed_passwd.getText().toString();
	
	//判断用户名或者密码是否输入
	if((name.equals("")) || (passwd.equals("")))
	{
		Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
	}
	else 
	{
		if(cb.isChecked())
		{
			//使用sharedPreference来保存用户的信息,
			//SharedPreference的默认路径是:当前进程包名下的/share_prefs/
			SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
			
			//拿到SharedPreference的编辑器
			Editor editor = sp.edit();
			
			editor.putString("name", name);
			editor.putString("passwd", passwd);
			
			//提交
			editor.commit();
		}
		
		Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
		}
}

可以看到在sharedPreference的路径下有info文件

导出可以看到。info.xml是以key,value的形式保存的

代码语言:javascript复制
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="passwd">1233333</string>
<string name="name">ert</string>
</map>

当再次进来时,也能回显用户的信息:

代码语言:javascript复制
	public void readInfo()
	{
		//获取info文件中的内容
		SharedPreferences sP = getSharedPreferences("info", MODE_PRIVATE);
		ed_nam.setText(sP.getString("name", ""));
		ed_passwd.setText(sP.getString("passwd", ""));
	}

显示效果:

0 人点赞