Android 如何在共享首选项中存储数据

Android 如何在共享首选项中存储数据,android,android-layout,Android,Android Layout,我有一个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(){

我有一个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.java是一个单例
private ArrayList allBooks=new ArrayList();
公共图书getBook(int索引){
返回所有图书。获取(索引);
}
公共void saveChanges(){
//将所有书籍保存到内存中
}
公共空负荷书(){
//将allBooks加载到变量allBooks的内存中;
}
通过编写
SimpleBookManager.getSimpleBookManager().saveChanges()来实现


实现saveChanges()和loadBooks()方法的最佳方法是什么?你能举个简单的例子吗?我读过一些关于android中共享首选项的内容,但不幸的是,我不太明白=)

这里有一个问题,其中包含了您正在寻找的代码

要在共享首选项中存储数组,请查看此处-


但是,如果你的应用程序有很多书,或者有很多关于每本书的信息,那么最好使用SQLite数据库,你可以从应用程序中的任何上下文获取SharedReferences的实例

以下代码使用键“some_pref_key”和值“some_pref_value”将首选项保存到名为“your_preference_file_name”的文件中


如果需要保存其他类型的数据,请查看文档

如果要存储的单个数据不超过10个,则可以使用共享首选项。 示例:如果要存储bookid,那么共享首选项就足够了


但如果您试图存储对象/数据数组,则应仅将其存储在数据库中。这便于处理大量数据

这最好作为注释,因为您仅链接到另一个问题,而不是自己提供答案。
    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();