【问题标题】:Storing a list of strings to be displayed in listview? [closed]存储要在列表视图中显示的字符串列表? [关闭]
【发布时间】:2013-09-12 15:10:20
【问题描述】:

我花了很多时间试图找出保存字符串列表的最佳方法。我的活动显示一个用于输入字符串的编辑文本、一个用于添加它的按钮,然后是显示添加的字符串和所有先前添加的字符串的列表视图。我认为 SQLite 对此有点矫枉过正,但我​​不知道如何在共享首选项中存储列表。我听说有人提到 JSON 和 GSON,但我对这两种方法都没有经验,也不确定哪个选项最好。

对于哪种方法最适合这种情况,我非常感谢一些建议。在此先感谢大家。

【问题讨论】:

标签: java android json persistence sharedpreferences


【解决方案1】:

您可以使用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");

请参阅How to properly use load array and save array methods?Save ArrayList to SharedPreferences 了解更多信息。

【讨论】:

  • 非常感谢,为我做了。
猜你喜欢
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 2016-10-18
  • 2017-12-29
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多