2012-09-23 13 views
6

Tôi có câu hỏi về cách lưu danh sách mảng các đối tượng tùy chỉnh. Tôi có một lớp được gọi là notitie:Android lưu mảng đối tượng tùy chỉnh

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; 
} 
} 

tôi tạo ra một số đối tượng của Notitie và thêm chúng vào ArrayList tôi gọi 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); 

Bây giờ tôi muốn lưu ArrayList điền vào lưu trữ của thiết bị để nó có thể được truy cập bất cứ lúc nào. Tôi sử dụng để lưu dữ liệu như là một chuỗi hoặc một số số nguyên với sharedpreferences nhưng tôi không thể lưu Arraylist này với điều đó. Có ai có giải pháp không?

Cảm ơn trước!

Trả lời

5

Bạn có một vài lựa chọn:

  1. Sử dụng serialization, XML hoặc JSON, và lưu trữ dữ liệu của bạn trong một tập tin. Tham khảo this solution nếu bạn muốn triển khai tuần tự hóa.

  2. Lưu trữ dữ liệu của bạn bằng cách sử dụng SQLite. Hãy xem this tutorial để bắt đầu.

EDIT: Bạn có thể muốn đọc this cũng!

+0

Tại sao hoặc trong trường hợp nào bạn nên giới thiệu phương pháp thứ nhất hoặc thứ hai? – Bruiser

+3

@Bruiser: Đó là một câu hỏi rất hay. Ưu điểm của SQLite là bạn có thể trực tiếp hiển thị các phần tử trong bất kỳ ListView nào sử dụng CursorAdapter, giúp tiết kiệm hàng tấn công việc. Thêm vào đó, việc xử lý dữ liệu con trỏ thực sự dễ dàng khi bạn nhận được dữ liệu của nó. Làm những việc tương tự bằng cách sử dụng Tệp có thể hơi khó khăn, nếu không làm phiền. Vì vậy, đối với tôi, SQLite là con đường để đi. – Swayam

+1

Cảm ơn rất nhiều vì đã giải thích chi tiết. Tôi hiểu rằng có rất nhiều điều cần xem xét nhưng đó chắc chắn là một điểm khởi đầu rất tốt để thảo luận thêm. Đây là một số chi tiết cho những người quan tâm: http://stackoverflow.com/questions/12212640/android-performance-flat-file-vs-sqlite | http://stackoverflow.com/questions/1803365/android-data-storage-file-vs-sqlite – Bruiser