如何使用共享首选项整体存储数据数组

时间:2012-01-12 05:55:04

标签: android sharedpreferences

实际上,我有一个字符串数组,大小为100.我已在此字符串数组中输入数据。现在,我想使用SharedPreferences存储这个字符串数组。

所以我的问题是,是否可以存储整个字符串数组,而不是使用SharedPreferences单独存储每个字符串。如果是这样,那该怎么办呢。

我编写的代码用于存储数据 单独使用循环。但是我想在不使用循环的情况下存储整个字符串数组。

为单独存储编写的代码是

SharedPreferences preferencesWrite  = c.getSharedPreferences("myPreferences", 0);
SharedPreferences.Editor editor  = preferencesWrite.edit();

    for(int i=0; i< 100; i++)
    {
        editor.putString("dtHistory" + Integer.toString(i), m_dtHistory[i];

    }
    editor.commit();

2 个答案:

答案 0 :(得分:0)

SharedPreferences只允许每个条目保存单个项目 - 强制执行此限制,以便用户只能按名称建议存储“首选项” - 标志,字符串,数字等。这是为了消除对不重要的项目不必要的sqlite数据库的使用。

然而,有一种新的sharedPreferences方法(API 11)允许您存储一组字符串。它被称为putStringSet,您可以查看here

答案 1 :(得分:0)

是的,可以以字符串形式存储数组

您应该执行以下操作:

    SharedPreferences preferencesWrite  = c.getSharedPreferences("myPreferences", 0);
    SharedPreferences.Editor editor  = preferencesWrite.edit();

     Gson gson = new Gson();
     ArrayList<ModelClass>favorites = new ArrayList<>();

     String jsonFavorites = gson.toJson(favorites);
     editor.putString("your sharedPref NTT", jsonFavorites);
     editor.apply();