2012-11-17 94 views
0

我有一個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

下面是一個SO疑問,有你正在尋找的代碼在它

要存儲在共享偏好陣列看這裏 -

但是,如果你的應用程序有很多的書,還是有很多有關每本書倒不如使用SQLite數據庫信息

+0

由於您只關聯了另一個問題,而不是提供者自己的答案,所以這更好。 – Sam

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文檔

0

如果您打算存儲單個數據不超過10個,則可以使用共享偏好設置 示例:如果要存儲bookid,則共享首選項已足夠。

但是,如果您嘗試存儲對象/數據數組,則應將其存儲在數據庫中。處理大量數據很方便