难以理解共同偏好

Having difficulty understanding shared preferences

我一直在整个互联网上搜索 android 的共享首选项。我正在开发一个需要存储大量数据的应用程序。我有三个重要的问题,请尽量用清楚的解释来回答它们(最好简短且内容丰富):

  1. 如何设置初始值(默认值),如果将编辑器置于启动画面中,那么每次用户启动应用程序时都会重置这些值。
  2. 使用 getSomething() 总能得到你放入其中的值,就像我说 getBoolean(first_start,true) 它会 return true,如果我想得到值怎么办存储在文件中,我该怎么做?
  3. 我可以创建 sharedpreferences 文件 (txt) 并将默认值以键值对格式放入 apk 中,以便在用户安装应用程序时获得默认值吗??

预先感谢您在我身上浪费我的时间:P

1 - 在共享首选项中放置一些标志,这些标志将在初始值设置后设置。并将标志检查放在启动画面中。

2 - 您可以使用资产 - Where do I place the 'assets' folder in Android Studio?

3 - 是的。您可以将文件放在资产中并首先读取它 运行 并在共享首选项中设置初始值。

先看这个简单的例子:

SharedPreferences sharedPreferences = getSharedPreferences("name", Context.MODE_PRIVATE);

A SharedPreference 将键值对存储在 xml 文件中。上面的简单示例将生成一个名为 'name.xml' 的 xml 文件,如果该文件不存在于所有 SharedPreference 文件都存在的 '/data/data/<package name>/shared_prefs' 目录下。

float aFloat = sharedPreferences.getFloat("float", 0.0f);

而这一行的意思是:你想得到一个存储在xml文件中的浮点值'name.xml'。如果您曾在 'name.xml' 文件中存储名称为 'float' 的浮点值,它将 return 您存储的值;否则,它将 return 0.0 这是 'float' 的默认值。 所以, 1,2,你不需要故意初始化一个默认值。您可以通过第二行代码设置默认值。 3、不能创建'.txt'格式的SharedPreference文件,也不需要这样做。所有关于 SharedPreference 的信息都将存储在 xml 中的 '/data/data/<package name>/shared_prefs'。 希望这会帮助你。

        SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 

//if value for first_run does not exist. That we have first run of application.
//prefs.getBoolean("first_run", true); will return default value true
    Boolean first_run = prefs.getBoolean("first_run", true);
    if (first_run) {
       Editor editor = prefs.edit();
       // after that Boolean first_run = prefs.getBoolean("first_run", true);
       // will always return false
       editor.putBoolean("first_run", false); 
       // do some on first app run
    } else {
       // do some if not first run
    }