2015-05-05 16 views
5

Właśnie zaczynam programowanie Android. Mam aplikację, która podaje wyniki oparte na matematycznych metodach papierów wartościowych i ostrzega, kiedy papier akcyjny wzrośnie lub spadnie. Mam klasę depot, która zawiera listę dokumentów, które są oglądane. Moje pytanie jest teraz najlepszym i najłatwiejszym sposobem przechowywania danych.Sugestie dotyczące zapisywania danych

Jak już powiedziałem, mój magazyn ma ArrayList mojej klasy papieru magazynowego. Użytkownik może dodawać i usuwać do tego. Mój artykuł Klasa ma następujące wartości, które powinny zostać zapisane:

protected String Bezeichnung; 
protected String WKN; 
protected String ISIN; 
protected String Typ; 
protected String Schwerpunkt; 
protected String Domizil; 
protected String KAG; 
protected Date Stand; 
protected List<History_Entry> Historie; 
protected Date Startdatum; 
protected Date Enddatum; 
protected int Durchschnitt1 = 200; 
protected int Durchschnitt2 = 38; 

Tricky thing to wartość historyczna. Zawiera wszystkie historyczne wartości StockPaper. Jest to ArrayList z Class History_Entry. History_Entry po prostu ma podwójną wartość z wartością i odpowiednią datą. Dalej ma dwie średnie wartości, ale mogę je ponownie przeliczyć na początku.

Mój pomysł polega na utworzeniu bazy danych zawierającej wszystkie historyczne wartości. Oraz Baza danych zawierająca Nazwę Papierów Wartościowych i wszystkie inne Wartości z klasy Papier.

Mam nadzieję, że nie jestem daleko, ale cieszę się z wszystkiego, czego się nauczyłem.

+0

Zaleciłbym przeczytanie tego w dokumentacji systemu Android. http://developer.android.com/training/basics/data-storage/index.html –

+0

Przeczytałem to i dzięki temu doszedłem do pomysłu z dwiema bazami danych. Chciałem tylko uzyskać inny pomysł lub "tak, to jest dobry pomysł" –

+0

Nie, nie korzystaj z dwóch baz danych. Moją pierwszą myślą byłby stół StockPaper i tabela historii. Za każdym razem, gdy otrzymasz wartość papieru, dodaj ją do tabeli Historia ze znacznikiem czasu. Jeśli chcesz poznać aktualną wartość, wybierz wiersz z tabeli Historia z poprawną wartością klucza obcego StockPaper i najnowszym znacznikiem czasu. – nasch

Odpowiedz

3

Rozwiązanie zależy od tego, jak duże są Twoje dane i co z nimi robisz.

Czy to jest duże? Czy często przeszukujesz klucze? Czy robisz agregację, filtrowanie, selekcja? Jeśli jedna z odpowiedzi brzmi "tak", to potrzebujesz podejścia bazodanowego.

Jeśli "Nie", możesz zastosować dowolne proste podejście. Widzę, że wszystkie twoje dane są ciągiem lub zamienialne na ciąg. Możesz po prostu zapisać plik z wierszy jako swoje rekordy, a później przeczytać i przeanalizować z funkcją podziału. To kilka linii kodu.

Inne podejście to serialization Wszystkie dane - ciąg, podwójne i ArrayList są przekształcalne do postaci szeregowej. Po prostu serializuj/deserializuj do lokalnego pliku. Istnieje wiele przykładów lub tutorials jak wykonać prostą serializację.

+0

Moja klasa papieru jest już dostępna Serializable, ponieważ musiałem go przekazać między działaniami. Dzięki za pomysł, spróbuję. –

+0

Możesz dołączyć go do intencji, której używasz do interakcji pomiędzy działaniami. W ogóle nie potrzebujesz pliku. – Alex

+0

Muszę zapisać plik, ponieważ chcę zachować dane po wyłączeniu lub ponownym uruchomieniu aplikacji.Poinformuję, jak działa serializacja, ale musiałem naprawić kilka rzeczy, zanim będę mógł zacząć. Ale dziękuję już za porady –

0

masz kilka różnych opcji, aby zapisać dane w systemie Android, takich jak ...

Jeśli chcesz zapisać swoje dane do zdalnej bazy danych istnieje wiele tutoriali online, sprawdź to post.

Powiązane problemy