1.定义:SharedPrefences是使用键值对的方式来存储数据的。支持多种不同的数据类型存储。
2.将数据存储到SharedPreferences中
2.1要使用SharedPreferences来存储数据,首先要获取到SharedPreferences对象,获取方式主要有三种
1>Context类中的getSharedPreferences对象
此方法接受两个参数,第一个参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则创建一个
SharedPreferences文件都存在/data/data/<package name>/shared_prefs/目录下的。第二个参数用于指定操作
模式,目前只有一种模式可选,也是默认的操作模式。和直接传0是相同的,表示只有当前的程序才可以对这个
SharedPreferences文件进行读写。
2>Activity类中的getPrefences()
只接收一个操作模式方法,因为此方法会自动将当前的活动的类名作为SharedPreferences的文件名。
3>PreferenceManager类中的getDefaultPreferences()
这是一个静态方法,它接受一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences
文件。
2.2得到SharedPreferences对象之后,就可以向SharedPreferences文件中存储数据了,主要分为三步:
1>调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Edit对象。
2>向SharedPreferences.Editor对象中添加数据。
3>调用apply()方法将添加的数据提交,从而完成数据存储操作。
实例代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn=findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences.Editor editor=getSharedPreferences
("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",20);
editor.putBoolean("married",false);
editor.apply();
}
});
}
}
3.从SharedPreferences中读取数据
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn=findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences pref=getSharedPreferences
("data",MODE_PRIVATE);
String name=pref.getString("name","");
int age=pref.getInt("age",0);
boolean married=pref.getBoolean("married",false);
}
});
}
}