我有一个arraylist,我想在应用程序关闭/终止/销毁时保存数据。
//Class SimpleBookManager.java is a singleton
private ArrayList<Book> allBooks = new ArrayList<Book>();
public Book getBook(int index){
return allBooks.get(index);
}
public void saveChanges(){
//Save the allBooks into memory
}
public void loadBooks(){
//Load the allBooks into memory to the variable allBooks;
}
通过在包中的所有其他类中编写SimpleBookManager.getSimpleBookManager().saveChanges();
来达到它。
实现saveChanges()和loadBooks()方法的最佳方法是什么?你能举个简短的例子吗?我已经阅读了有关Android中共享首选项的内容,但不幸的是我不太了解它=)
答案 0 :(得分:0)
这是一个SO问题,其中包含您正在寻找的代码
要在共享首选项中存储数组,请在此处查看 -
但是,如果您的应用有很多书籍,或者有关每本书的大量信息,那么使用SQLite数据库会更好
答案 1 :(得分:0)
您可以从应用内的任何上下文中获取SharedPreferences的实例。
以下代码将关键字“some_pref_key和value”some_pref_value“的首选项保存到名为”your_preference_file_name“的文件中
SharedPreferences prefs = context.getSharedPreferences( "your_preference_file_name", MODE_APPEND );
SharedPreferences.Editor editor = prefs.edit();
editor.putString( "some_pref_key", "some_pref_value" );
editor.commit();
如果您需要保存其他类型的数据,请查看SharedPreferences.editor文档
答案 2 :(得分:0)
如果要存储的单个数据不超过10个,则可以使用共享首选项。 示例:如果您要存储bookid,那么共享首选项就足够了。
但是如果您要存储对象数据/数据,则应将其存储在仅数据库中。处理大量数据很方便