Android: 保存键值集(SharedPreferences)

来源:互联网 发布:知乎 win10 杀毒软件 编辑:程序博客网 时间:2024/06/06 04:48

如果你有一个相对较小的k-v集合你想保存,您应该使用SharedPreferences.
SharedPreferences对象指向包含键值对的文件,并提供一些简单的方法来读取和写入。SharedPreferences文件可以私人或共享。

下面展示了如何使用SharedPrefernces来存储和检索简单值。要想使用SharedPreferences来保存数据,首先需要获得SharedPreferences的对象。

1、Context类中的 getPreferences()方法
此方法需要传入两个参数,第一个参数是sp文件的名称,第二个参数用于指定操作模式,主要有两种模式可以选择,MODE_PRIVATE和MODE_MULTI_PROCESS。MODE_PRIVATE是默认的操作模式,和直接传入0效果是一样的,表示只有当前的应用程序才可以对这个sp文件进行读写。MODE_MULTI_PROCESS则一般是用于会有多个进程中对同一个sp文件进行读写的情况。
获取sp对象:

SharedPreferences sp1 = this.getSharedPreferences("fileName",Context.MODE_PRIVATE);

如果,名为fileName的文件不存在则会创建一个。

2、Activity类中的getPreferences()方法
这个方法和Context 中的getSharedPreferences()方法很相似,不过它只接收一个操作模式参数,因为使用这个方法时会自动将当前活动的类名作为sp的文件名。
获取sp对象:

SharedPreferences sp = this.getPreferences(Context.MODE_PRIVATE);

3、 PreferenceManager 类中的getDefaultSharedPreferences()方法这是一个静态方法。它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名sp文件。
获取sp对象:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);

存储数据

得到了SharedPreferences 对象之后,就可以开始向sp文件中存储数据了,
主要可以分为三步实现。
1、调用SharedPreferences 对象的edit()方法来获取一个SharedPreferences.Editor 对象;
2、向SharedPreferences.Editor对象中添加数据,比如添加一个字符串则使用putString()方法,添加整型则使用putInt()方法以此类推;
3、调用commit()方法将添加的数据提交,从而完成数据存储操作。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);SharedPreferences.Editor editor = sharedPref.edit();editor.putInt(getString(R.string.saved_high_score),newHighScore);editor.commit();

从sp对象读取数据

从sp文件中检索值,调用方法如getInt()和getString(),提供你想要读取值得key,如果不存在的关键,选择返回默认值。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
0 0