如何获取SharedPreferences文件的内容并覆盖它们?

时间:2012-03-02 14:28:05

标签: android sharedpreferences

我是Android开发人员的新手。我在这里浏览API http://developer.android.com/reference/android/content/SharedPreferences.html

但我对如何实际获取文件内容以及从中读取或写入感到困惑。

我有这个代码来获取SharedPreferences对象:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( MyClassName.this);

但是在这种情况下,我获得了对sharedPreferences的引用,但没有连接到存储首选项数据的文件。

也许我没有正确理解API,但是我应该如何获取文件的引用并对其进行读/写?

谢谢!

3 个答案:

答案 0 :(得分:1)

edit()会返回一个您必须使用的编辑器才能修改sh​​aredpreferences文件,当您结束编辑时,请致电commit()以永久更改

答案 1 :(得分:1)

  

但是在这种情况下,我获得了对sharedPreferences的引用,但没有连接到存储首选项数据的文件。

SharedPreferences对象与存储首选项数据的文件有“连接”。

  

也许我没有正确理解API,但是我应该如何获取文件的引用并对其进行读/写?

要阅读偏好设置,请使用SharedPreferences上的getters(例如getString())。要自己编写偏好:

  • 通过致电SharedPreferences.Editor对象
  • 上的edit()获取SharedPreferences
  • 使用Editor上的设置者(例如,putString()
  • 致电apply()(如果可能)或commit() Editor以保存更改

此外,您可以(并且在许多情况下)也可以使用PreferenceActivity来允许用户直接查看和修改他们的偏好。

答案 2 :(得分:1)

如果你想从你的SharedPreferneces获取你必须使用的值(这个例子适用于字符串,但你也可以调用getBoolean,getInt等。)

prefs.getString("myString", "defaultValue"); // "defaultValue" will be returned in case "myString" wasn't saved on the SharedPreferences

存储一些值,你可以这样做:

prefs.edit()
.putString("myString", "newValue")
.putBoolean("working", true)
.commit();

如您所见,您可以一次编辑多个值。