0

我有一个数组列表,我想在应用程序关闭/终止/销毁时保存数据。

//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 中共享偏好的内容,但不幸的是我不太明白 =)

4

3 回答 3

0

这是一个 SO question,其中包含您要查找的代码

要将数组存储在共享首选项中,请看这里 -

但是,如果您的应用程序有很多书籍,或者每本书都有很多信息,那么最好使用 SQLite 数据库

于 2012-11-17T17:58:31.593 回答
0

您可以从应用程序中的任何上下文中获取 SharedPreferences 的实例。

以下代码将带有键“some_pref_key”和值“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 文档

于 2012-11-17T17:59:24.150 回答
0

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

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

于 2012-11-17T18:24:14.190 回答