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

时间:2012-11-17 17:53:44

标签: 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(){
    //Save the allBooks into memory
}
public void loadBooks(){
    //Load the allBooks into memory to the variable allBooks;
}

通过在包中的所有其他类中编写SimpleBookManager.getSimpleBookManager().saveChanges();来达到它。

实现saveChanges()和loadBooks()方法的最佳方法是什么?你能举个简短的例子吗?我已经阅读了有关Android中共享首选项的内容,但不幸的是我不太了解它=)

3 个答案:

答案 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,那么共享首选项就足够了。

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

相关问题