2012-09-23 25 views
6

Mam pytanie dotyczące zapisywania listy układów niestandardowych obiektów. Mam klasy o nazwie notitie:Android zapisz tablicę niestandardowych obiektów

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

tworzę kilka przedmiotów Notitie i dodać je do mojego ArrayList zwane 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); 

Teraz chcę zapisać wypełniony ArrayList na przechowywanie urządzenia tak, to może być dostępnym w każdej chwili. Zapisałem dane jako ciąg lub niektóre liczby całkowite z sharedpreferences, ale nie mogę zapisać tej tablicy. Czy ktoś ma rozwiązanie?

Z góry dziękuję!

Odpowiedz

5

Ty masz kilka opcji:

  1. Używaj serializacji XML lub JSON, i przechowywania danych w pliku. Zapoznaj się z numerem this solution, jeśli chcesz wdrożyć serializację.

  2. Przechowuj dane za pomocą SQLite. Zajrzyj na this tutorial, aby rozpocząć.

EDIT: Możecie chcą czytać this jak dobrze!

+0

Dlaczego lub w jakim przypadku poleciłbyś pierwsze lub drugie podejście? – Bruiser

+3

@Bruiser: To bardzo dobre pytanie. Zaletą SQLite jest możliwość bezpośredniego wyświetlania elementów w dowolnym ListView za pomocą CursorAdapter, który oszczędza mnóstwo pracy. Dodatkowo, obsługa danych Cursor jest naprawdę łatwa, kiedy już to zrozumiesz. Robienie tych samych rzeczy przy użyciu plików może być trochę żmudne, a nawet frustrujące. Tak więc dla mnie SQLite jest drogą do zrobienia. – Swayam

+1

Wielkie dzięki za szczegółowe wyjaśnienie. Rozumiem, że jest oczywiście wiele do rozważenia, ale jest to z pewnością bardzo dobry punkt wyjścia do dalszej dyskusji. Oto więcej dla tych, którzy są zainteresowani: http://stackoverflow.com/questions/12212640/android-performance-flat-file-vs-sqlite | http://stackoverflow.com/questions/1803365/android-data-storage-file-vs-sqlite – Bruiser

Powiązane problemy