SharedPreferences存储数据
sharedPreferences是使用键值对的方式来存储数据的。存储一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。而且sharedPreferences还支持多种不用的数据类型存储。
Android提供三种方法用于得到sharedPreferences对象。
1、Context类中getSharedPreferences(String name, int mode)方法
此方法接收两个参数
name参数是指定SharedPreferences文件的名称,如果指定的文件不存在则会创建一个,文件是存放在应用的data/data/<packagename>/shared_pref/目录下的
mode参数是指定操作模式,主要有两种模式可以选择,MODE_PRIVATE和MODE_MULTI_PROCESS。MODE_PRIVATE是默认的操作模式,传入0的效果也是一样的,表示只有当前应用程序才可以对这个sharedPreferences文件进行读写;MODE_MULTI_PROCESS则一般是用于多个进程中对同一个sharedPreferences文件进行读写。
2、Activity类中的getPreference()方法
跟第一个方法类似,不过它只接收一个参数,因为使用这个方法会自动将当前活动的类名作为sharedPreferences文件的文件名。
3、PreferenceManager类中的getDefaultSharedPreferences()方法
这是一个静态方法,它接收一个Context参数,并自动使用给当前应用程序的包名作为前缀来命名sharedPreferences文件的文件名
得到了SharedPreferences对象之后,就可以开始向SharedPreferences文件中存储数据了,主要分为三步实现:
1、调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
2、向SharedPreferences.Editor对象中添加数据,比如添加一个布尔类型就可以使用putBoolean方法。
3、调用commit方法将添加的数据提交,从而完成数据存储操作。
例子如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//以包名和类名的形式创建
//SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
//以自定义的的形式创建
SharedPreferences pref = getSharedPreferences("myprf", MODE_PRIVATE);
//启动编辑
Editor editor = pref.edit();
editor.putString("name", "张三");
editor.putInt("age", 30);
editor.putLong("time", System.currentTimeMillis());
editor.putBoolean("default", true);
//每次编辑完都要调用commit数据才生效
editor.commit();
//editor.remove("default");
//editor.commit();
System.out.println(pref.getString("name", ""));
System.out.println(pref.getInt("age", 0));
}
}