2015-05-05 7 views
5

Ho appena iniziato la programmazione Android. Ho un'app che fornisce progese basate su metodi matematici di carte di magazzino e avverte quando un foglio di carta sta per salire o scendere. Ho una classe Depot che contiene un elenco di documenti che vengono guardati. La mia domanda ora è qual è il modo migliore e, si spera, più semplice per archiviare i dati.Suggerimenti su come salvare i dati

Come ho detto il mio depot ha una lista di array della mia classe di carta. L'utente può aggiungere e rimuovere a questo. La mia carta di classe ha i seguenti valori che dovrebbero tutti essere salvati:

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; 

La cosa più difficile è il Valore Historie. Contiene tutti i valori storici dello StockPaper. È un ArrayList con la classe History_Entry. History_Entry ha semplicemente un doppio valore con il valore e la data corrispondente. Inoltre ha i due valori medi ma posso ricalcolare quelli all'inizio.

La mia idea è di stabilire un database che contenga tutti i valori storici. E un database che contiene il nome del foglio di carta e tutti gli altri valori della classe Carta.

Spero di non essere lontano, ma sono felice di tutto ciò che è nuovo da imparare.

+0

Suggerirei di leggerlo nella documentazione di Android. http://developer.android.com/training/basics/data-storage/index.html –

+0

L'ho letto, e per questo sono arrivato all'idea con i due database. Volevo solo avere un'altra idea o un "sì è una buona idea" –

+0

No, non usare due database. Il mio primo pensiero sarebbe stato una tabella di riserva e una tabella di storia. Ogni volta che ottieni un valore per un foglio, aggiungilo alla tabella Cronologia con un timestamp. Quando si desidera conoscere il valore corrente, selezionare la riga dalla tabella Cronologia con il valore corretto della chiave esterna StockPaper e il timestamp più recente. – nasch

risposta

3

La soluzione per voi dipende da quanto grandi sono i vostri dati e da cosa li fate.

È grande? Cerchi molto per chiavi? Fai aggregazione, filtraggio, selezione? Se una delle risposte è "sì", allora hai bisogno di un approccio al database.

Se "No", è possibile utilizzare qualsiasi approccio semplice. Vedo che tutti i tuoi dati sono String o convertibili in String. Si può semplicemente salvare il file con le righe come record e in seguito leggerlo e analizzare con la funzione split. Sono poche righe di codice.

Un altro approccio è serialization Tutti i dati: String, double e ArrayList sono serializzabili. Basta serializzare/deserializzare su file locale. C'è un sacco di esempi o tutorials come fare una semplice serializzazione.

+0

My Paper Class è già serializzabile perché ne avevo bisogno per passarlo tra le attività. Grazie per l'idea, ci proverò. –

+0

Puoi allegarlo all'intento che usi per interagire tra le attività. Non c'è bisogno di file affatto. – Alex

+0

Devo salvarlo su un file perché voglio conservare i dati dopo aver spento o riavviato l'app.Riporterò come funziona la serializzazione per me, ma ho dovuto sistemare alcune cose prima di poter iniziare. Ma grazie già per i consigli –

0

Avete alcune opzioni diverse per salvare i dati in Android, come ...

Se si desidera salvare i dati in un database remoto c'è un molti tutorial online, dai un'occhiata a questo post.