对SharePreferences存储的学习
要想使用 SharedPreferences 来存储数据,首先需要获取到 SharedPreferences 对象。Android 提供了三种方法得到 SharedPreferences 对象:
此方法接收两个参数,第一个参数指定 SharedPreferences 文件的名称,第二个参数指定操作模式,目前只有 MODE_PRIVATE 一种模式,和直接传入 0 效果相同。 其他几种模式已被废弃。
此方法和上面的方法相似,但只接收一个操作模式参数,使用这个方法时会自动将当前活动的类名作为 SharedPreferences 的文件名。
这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。
(1)调用 SharedPreferences 对象的 edit()方法来获取一个 SharedPreferences.Editor 对象。
(2)向 SharedPreferences.Editor 对象中添加数据,如添加一个布尔型数据使用 putBoolean 方法,添加一个字符串使用 putString()方法,以此类推。
(3) 调用 apply()方法将添加的数据提交,完成数据存储。
可见MainActivity.java中的代码:
Button saveData = findViewById(R.id.save_data);
saveData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//指定文件名为data,并得到一个SharedPreferences.Editor对象
SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit();
//添加数据
editor.putString("name","Tom");
editor.putInt("age",28);
editor.putBoolean("married",false);
//提交数据
editor.apply();
}
});
保存后的文件:
SharedPreferences 对象中提供了一系列的 get 方法用于对存储的数据进行读取,每种 get 方法都对应了 SharedPreferences. Editor 中的一种 put 方法。这些 get 方法接收两个参数,第一个参数是键,即传入存储数据时使用的键;第二个参数是默认值,即当传入的键找不到对 应的值时,返回默认值。 可见MainActivity.java中的代码:
final TextView showData=findViewById(R.id.show_data);
Button restoreData=findViewById(R.id.restore_data);
restoreData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获得一个SharedPreferences对象
SharedPreferences preferences=getSharedPreferences("data",MODE_PRIVATE);
//获取数据
String name=preferences.getString("name","");
int age=preferences.getInt("age",0);
boolean married=preferences.getBoolean("married",false);
//显示数据
showData.setText("name:"+name+",age:"+age+"married is "+married);
}
});
最终运行结果:
布局文件自行查看代码。