【问题标题】:store Array in sharedpreferences将数组存储在 sharedpreferences 中
【发布时间】:2012-02-01 15:06:01
【问题描述】:

我有一个带有整数值的Array。它会随着时间的推移而增长。它将有大约 50 个值。 我想将数组持久存储,因此我考虑将其存储在SharedPreferences 中。 我知道其中不能存储复杂类型,但我也听说要序列化Array,然后将其存储在SharedPreferences 中。 有人可以给我一个提示甚至更好的示例代码吗?

【问题讨论】:

标签: android arrays sharedpreferences persistent


【解决方案1】:

您可以使用 ObjectSerializer 来执行此操作。这是关于如何做的讨论。Store Shared preferences

【讨论】:

    【解决方案2】:

    不是很有效的方法,但会完成工作:

    SharedPreferences prefs = ...;
    final int count = 50;
    final String KEY_COUNT = "COUNT";
    final String KEY_VAL_PREFIX = "VAL_";
    int values[] = new int[count];
    
    /*
     * ... put some stuff in values[] ...
     */
    
    final Editor sped = prefs.edit();
    sped.putInt(KEY_COUNT, count);
    for (int i = 0; i < count; i++)
    {
        sped.putInt(KEY_VAL_PREFIX + i, values[i]);
    }
    sped.commit();
    

    然后您可以通过从首选项中获取 KEY_COUNT 值来检索这些值,然后使用 values2[i] = getInt(KEY_VAL_PREFIX + i, 0) 调用填充您的空数组。

    【讨论】:

    【解决方案3】:

    我会将您的数组转换为以逗号分隔的值字符串。然后将字符串存储为单个键值对。

    然后,当您要提取数组时,只需使用 split 函数将字符串拆分为基于逗号分隔符的数组元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-02
      • 2014-05-23
      • 2017-03-03
      • 2012-05-06
      • 2014-02-21
      • 2015-02-26
      • 1970-01-01
      相关资源
      最近更新 更多