非完整的项目代码,仅有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);
}
}