难以理解共享偏好

时间:2015-03-30 07:31:37

标签: android sharedpreferences

我一直在互联网上搜索关于Android的共享偏好。我正在开发一个需要存储大量数据的应用程序。我有三个重要问题,请尝试用清楚的解释回答它们(简短且信息量最好):

  1. 如何设置初始值(默认值),如果将编辑器放入Splash屏幕,则每次用户启动应用程序时都会重置值。
  2. 使用getSomething()总能得到你放入它的值,就像我说getBoolean(first_start,true)它将返回true,如果我想获取存储在文件中的值,该怎么办呢??
  3. 我可以创建sharedpreferences文件(txt)并将默认值设置为keyvaluepair格式并将其放入apk中,这样当用户安装应用程序时获取默认值
  4. 提前感谢你把时间浪费在我身上:P

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

首先看一下这个简单的样本:

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

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

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

此行表示:您希望获取存储在xml文件'name.xml'中的浮点值。如果您在'float'文件中存储了名称为'name.xml'的浮点值,它将返回您存储的值;如果不存在,则返回0.0,这是默认值{ {1}}。 所以, 1,2,您不需要故意初始化默认值。您可以通过第二行代码设置默认值。 3,您无法以'float'的格式创建SharedPreference文件,并且您不需要这样做。关于SharedPreference的所有内容都将存储在'.txt'的{​​{1}}。 希望这会帮助你。

答案 2 :(得分:0)

        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
    }