实际上,我有一个字符串数组,大小为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();
答案 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();