2011-01-10 4 views
1

Ich habe gerade das NotepadV1-3-Tutorial für Android-Apps abgeschlossen, und ich dachte daran, meine eigene Inventar App zum Spaß zu erstellen, die im Grunde besteht aus einer Liste von Namen (wie "DVD" oder "Grocery"), von denen jeder angeklickt werden kann, was eine andere spezifische Liste hervorbringt, die diesem Namen zugeordnet ist. Mit der SQLiteDatabase.insert (..) -Methode kann der ContentValue jedoch (neben vielen anderen) nur "String, String" als Argument verwenden, und ich kann nicht herausfinden, wie man in die Datenbank eine Liste von zugeordneten Strings eingibt ein bestimmter Schlüssel. Ich habe Probleme, herauszufinden, wie ich das beheben kann, da ich mit SQL nicht so vertraut bin.Anfang android: wie man einen String einer Liste zuordnet

Was wäre der beste Weg, um einen Schlüssel mit der zugehörigen Liste von Strings zu speichern?

Alle Hinweise und Vorschläge sind willkommen!

Android newb: [

Antwort

0

Das Beste ist, man könnte ein Datenbank-Design zu machen, die nicht für die Eingabe der Liste als als „string of strings“ benötigt. Sie könnten (ich habe das noch nicht gedacht) eine Tabelle mit Listen (id und listName) und eine andere Tabelle mit Inhalt (id und contentName) und schließlich eine Tabelle, die die beiden verbindet (tableId und contentName).

Wenn Sie diese String-Zeichenfolge wirklich speichern möchten, können Sie sie in eine Zeichenfolge serialisieren, und wenn Sie sie dann aus der Datenbank gelesen haben, können Sie die Zeichenfolge erneut erstellen. Dies ist jedoch nicht empfehlenswert.

Beispiel für eine (einfachere) Datenbank

Table 1 "lists": listId, listName 
Table 2 "items": itemId, itemName, listId 

zB:

Lists: 
listId listName 
1  DVD's 
2  Grocery 

Items 
itemId itemName listId 
1  film1  1 
2  film2  1 
3  sugar  2 
4  milk  2 

Sie alle Elemente der Einkaufsliste von finden:

SELECT i.itemName 
FROM lists l 
JOIN items i ON l.listId = i.listId 
WHERE l.listName='Grocery' 
+0

Hmm, ich denke tokenize/rebuilt string wäre mein Backup-Plan, da ich momentan nicht wirklich auf Effizienz setze, sondern nur aus Spaß daran arbeite und sehe, wie Android Framework funktioniert ks. Ich bin mir nicht sicher, wie ich die zwei Tabellen verknüpfen würde, besonders wenn verschiedene Listen eine unterschiedliche Anzahl von Elementen usw. haben werden, es sei denn, ich erstelle für jede Liste eine neue Tabelle. – Jin

+0

siehe Beispiel für schnelle Lösung mit 2 Tabellen :) – Nanne