存储要在listview中显示的字符串列表?

时间:2013-09-12 15:10:21

标签: java android json persistence sharedpreferences

我花了很多时间试图找出保存字符串列表的最佳方法。我的活动显示一个edittext来输入一个字符串,一个按钮来添加它,然后是listview,它显示添加的字符串和所有以前添加的字符串。我认为SQLite对此有些过分,但我无法弄清楚如何在共享首选项中存储List。我听说有人提到JSON和GSON,虽然我也没有经验,但我不确定哪个选项最好。

我真的很感激一些建议,哪种方法最适合这种情况。在此先感谢大家。

1 个答案:

答案 0 :(得分: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