【发布时间】:2013-09-20 14:15:04
【问题描述】:
我正在开发一个 Android 应用程序,我需要将一些 Store 对象添加到 ArrayList favoriteStores。问题是我希望这个列表在关闭应用程序后仍然存在,因为我最喜欢的商店列表必须保留在那里,直到我选择删除其中的特定项目。任何人都知道我可以使用哪种类型的实现?提前致谢,
【问题讨论】:
标签: java android arraylist persistent
我正在开发一个 Android 应用程序,我需要将一些 Store 对象添加到 ArrayList favoriteStores。问题是我希望这个列表在关闭应用程序后仍然存在,因为我最喜欢的商店列表必须保留在那里,直到我选择删除其中的特定项目。任何人都知道我可以使用哪种类型的实现?提前致谢,
【问题讨论】:
标签: java android arraylist persistent
如果您不想将arraylist 保存到数据库,可以将其保存到文件中。如果您只想保存 arraylist 而不想接触 sqlite,这是一个很好的方法。
您可以使用此方法将arraylist保存到文件中
public static <E> void SaveArrayListToSD(Context mContext, String filename, ArrayList<E> list){
try {
FileOutputStream fos = mContext.openFileOutput(filename + ".dat", mContext.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(list);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
你可以用这个方法将保存的文件读入arraylist
public static Object ReadArrayListFromSD(Context mContext,String filename){
try {
FileInputStream fis = mContext.openFileInput(filename + ".dat");
ObjectInputStream ois = new ObjectInputStream(fis);
Object obj= (Object) ois.readObject();
fis.close();
return obj;
} catch (Exception e) {
e.printStackTrace();
return new ArrayList<Object>();
}
}
希望对您有所帮助。
【讨论】:
您可以使用像 SQLite (howto here) 这样的数据库,也可以使用一些序列化技术。序列化有一个相关问题here。
有关在 Android 中存储数据的一般信息,请参阅here。
【讨论】:
Here's 一篇关于 Android 数据存储选项的好帖子,请仔细阅读并选择您认为最合适的选项。
【讨论】: