如何检查 SharedPreferences 文件是否存在

新手上路,请多包涵

我正在寻找一个 android 共享首选项,我想知道是否有一种方法可以检查首选项文件是否存在。

    SharedPreferences  mySharedPreferences ;
mySharedPreferences=getSharedPreferences(“Name_of_your_preference”,mode);

上面的代码让我相信“Name_of_Your_preferene”被存储为一个文件或某种包含您的偏好的容器。

我想知道是否可以检查它是否存在。当用户加载一个活动时,我想用一些默认值(所有设置关闭)将所有设置保存到这个文件中。但是,我只想在他们第一次访问该页面时这样做。

否则,如果我每次加载页面时都做这样的事情

SharedPreferences.Editor editor= mySharedPreferences.edit();

/* now store your primitive type values. In this case it is true, 1f and Hello! World  */

editor.putBolean(“myBoolean”,true);

editor.putFloat(“myFloat”,1f);

editor.putString(“myString”,” Hello! World”);

我猜它会覆盖所有设置,甚至是他们设置的设置。

原文由 chobo2 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

SharedPreferences 保存在一个 xml 文件中。您可以在 /data/data/your_application_package/shared_prefs/Name_of_your_preference.xml 中找到它

要检查 SharedPreferences ‘Name_of_your_preference’ 是否存在:

 File f = new File(
"/data/data/your_application_package/shared_prefs/Name_of_your_preference.xml");
if (f.exists())
    Log.d("TAG", "SharedPreferences Name_of_your_preference : exist");
else
    Log.d("TAG", "Setup default preferences");

问候。

原文由 FinalSpirit 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在 SharedPreferences 对象上使用 contains 方法来检查文件中是否存在您的首选项键之一。如果返回 false ,您可以假设这是第一次并填充默认设置。此方法的文档 在此处

我找不到任何方法来检查首选项文件是否已经存在(它会在您第一次检索编辑器时自动创建),但这种方法应该可以解决问题。

原文由 Eugene S 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题