我花了很多时间试图找出保存字符串列表的最佳方法。我的活动显示一个用于输入字符串的编辑文本、一个用于添加它的按钮,然后是显示添加的字符串和所有先前添加的字符串的列表视图。我认为 SQLite 对此有点矫枉过正,但我不知道如何在共享首选项中存储列表。我听说有人提到 JSON 和 GSON,但我对这两种方法都没有经验,也不确定哪个选项最好。
对于哪种方法最适合这种情况,我真的很感激一些建议。提前谢谢大家。
我花了很多时间试图找出保存字符串列表的最佳方法。我的活动显示一个用于输入字符串的编辑文本、一个用于添加它的按钮,然后是显示添加的字符串和所有先前添加的字符串的列表视图。我认为 SQLite 对此有点矫枉过正,但我不知道如何在共享首选项中存储列表。我听说有人提到 JSON 和 GSON,但我对这两种方法都没有经验,也不确定哪个选项最好。
对于哪种方法最适合这种情况,我真的很感激一些建议。提前谢谢大家。
您可以使用SharedPreference
来保存字符串列表。如果您有更多结构化数据,那么使用数据库可能会更好地管理,否则您可以使用 Sharedreference 来保存和获取列表,如下所示:
//Function to get the array in SharedPreference
Public String[] loadArray(String arrayName) {
SharedPreferences prefs = getSharedPreferences("preferencename", 0);
int size = prefs.getInt(arrayName + "_size", 0);
String array[] = new String[size];
for(int i=0;i<size;i++)
array[i] = prefs.getString(arrayName + "_" + i, null);
return array;
}
//Function to save the array in SharedPreference
public boolean saveArray(String[] array, String arrayName) {
SharedPreferences prefs = getSharedPreferences("preferencename", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(arrayName +"_size", array.length);
for(int i=0;i<array.length;i++)
editor.putString(arrayName + "_" + i, array[i]);
return editor.commit();
}
因此,为了保存数组调用:
String [] yourList; // Load the array with values
saveArray(yourList, "nameOfList");
从共享首选项加载阵列
String [] arrName = loadArray("nameOfList");
请参阅如何正确使用加载数组和保存数组方法?并将ArrayList 保存到 SharedPreferences以获取更多信息。