2012-09-23 155 views
6

我有一個關於保存自定義對象數組列表的問題。我有一類叫做notitie:Android保存自定義對象數組

public class Notitie implements Serializable{ 

private String titel = ""; 
private String type = ""; 
private String datum = ""; 

public void setTitel (String titel){ 
    this.titel = titel; 
} 
public String getTitel(){ 
    return titel; 
} 
public void setType (String type){ 
    this.type = type; 
} 
public String getType(){ 
    return type; 
} 
public void setDatum (String datum){ 
    this.datum = datum; 
} 
public String getDatum(){ 
    return datum; 
} 
} 

創建Notitie的一些對象,並將其添加到我的ArrayList稱爲notities

ArrayList<Notitie> notities = new ArrayList<Notitie>(); 

Notitie notitie1 = new Notitie(); 
notitie1.setTitel("Meting"); 
notitie1.setType("Watermeting"); 
notitie1.setDatum("22-09-12"); 
notities.add(notitie1); 

Notitie notitie2 = new Notitie(); 
notitie1.setTitel("Meting2"); 
notitie1.setType("Watermeting2"); 
notitie1.setDatum("23-09-12"); 
notities.add(notitie2); 

Notitie notitie3 = new Notitie(); 
notitie1.setTitel("Meting3"); 
notitie1.setType("Watermeting3"); 
notitie1.setDatum("24-09-12"); 
notities.add(notitie3); 

現在我想保存填充的ArrayList的設備的存儲,以便它可以隨時訪問。我曾經使用sharedpreferences將數據保存爲字符串或一些整數,但我無法保存這個Arraylist。 有沒有人有解決方案?

在此先感謝!

回答

5

你確實有幾個選項:

  1. 使用序列化,XML或JSON和您的數據存儲在一個文件中。如果你想實現序列化,請參考this solution

  2. 使用SQLite存儲數據。看看this tutorial即可開始使用。

編輯:您可能需要閱讀this以及!

+0

爲什麼或者在哪種情況下,您會推薦第一種還是第二種方法? – Bruiser

+3

@Bruiser:這是一個非常好的問題。 SQLite的優點是可以使用CursorAdapter直接顯示任何ListView中的元素,從而節省大量工作。另外,處理Cursor數據很容易,一旦你掌握了它。使用文件做同樣的事情可能會有點困難,如果不是令人沮喪的話。所以,對我而言,SQLite是最好的選擇。 – Swayam

+1

非常感謝您的詳細解釋。我明白,當然有很多需要考慮的事情,但這絕對是進一步討論的一個非常好的起點。以下是一些更感興趣的人:http://stackoverflow.com/questions/12212640/android-performance-flat-file-vs-sqlite | http://stackoverflow.com/questions/1803365/android-data-storage-file-vs-sqlite – Bruiser

相關問題