非完整的項目代碼,僅有preference的存儲數據和讀取的部分內容。
數據存儲:
String str = ""; //存儲所有字符串信息
String temp = ""; //存儲一個項目的字符串信息
Item itm = null; //將item實例初始化
//將動態數組中的所有item實例取出,再取出每個item中的兩個string,
//使用空格“ ”和逗號“,”將數據分隔(為后面逐個取出數據)最后將所有數據拼接賦值給str
for (Item sitm : itemsArrayList) {
String name = sitm.getItemName();
String description = sitm.getItemDescription();
temp = name + " " + description;
str += temp + ",";
PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit()
.putString("myitems", str).commit();
}
數據讀取:
String str = PreferenceManager.getDefaultSharedPreferences(MainActivity.this)
.getString("myitems",null);
//先判定之前內容是否存儲成功,再將string逐層分隔數據(先用“,”標識將每個item的內容分隔開,再通過
//“ ”標識分隔item中的name和description)
if (str != null) {
List<String> arraylist = new ArrayList<String>(Arrays.asList(str.split(",")));
for(String s : arraylist) {
String[] parts = s.split(" ");
String name = parts[0];
String description = parts[1];
Item itemTemp = new Item(name, description); //實例化臨時的item
itemsArrayList.add(itemTemp);
itemTemp = null;
itemsListView.setAdapter(adapter);
}
}