android - 将数组存储在 sharedpreferences 中

标签 android arrays sharedpreferences persistent

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

最佳答案

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

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) 调用填充您的空数组。

关于android - 将数组存储在 sharedpreferences 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714579/

相关文章:

android - Aviary 与 Android Studio 集成 : Could not find com. aviary.android.feather.sdk :aviary-sdk:3. 4.3.350

java - 当我从一个 fragment 滑动到另一个 fragment 时如何做一个事件

PHP从mysql中获取数组中的多个数据

android - 静态共享首选项

android - 元素的内容必须包含格式正确的字符数据或标记。 AndroidManifest.xml

java - 我想更改名为 .hannesdorfmann :swipeback 的库中的一些内容

javascript - 查找日期范围内的工作日

arrays - 无法打印字符串常量数组字符串的内容?

java - 如何在 TextView 中显示 ArrayList 中的字符串

android - 如何存储临时值?