SQLite Query in class CursorAdapter geht nicht :(

  • 6 Antworten
  • Neuester Beitrag
Diskutiere SQLite Query in class CursorAdapter geht nicht :( im Android App Entwicklung im Bereich Betriebssysteme & Apps.
derjens

derjens

Ambitioniertes Mitglied
Einen schönen guten Tag Wünsche ich.

Folgendes Problem:

Ich habe eine ListActivity mit einem Custom CursorAdapter realisiert. Funktioniert soweit auch.
In der ListActivity sollen Projekte und deren Gesamtstunden angezeigt werden.

| ID #1 | Projektname | Gesamtstunden XXX:XX | -> hat z.B. 5 Buchungen aus denen die Zeiten für die Gesamtstunden berechnet werden müssen
| ID #2 | Projektname | Gesamtstunden XXX:XX | -> hat z.B. 2 Buchungen aus denen die Zeiten für die Gesamtstunden berechnet werden müssen
| ID #3 | Projektname | Gesamtstunden XXX:XX | -> hat z.B. 15 Buchungen aus denen die Zeiten für die Gesamtstunden berechnet werden müssen
| ID #4 | Projektname | Gesamtstunden XXX:XX | .....
| ID #5 | Projektname | Gesamtstunden XXX:XX | .....
.......

Wie bekomme ich es hin das ich die Buchungen für jedes Projekt abfrage um die Gesamtstunden zu berechnen die ich in der ListActivity ausgeben will??

Alle Datenbankabfragen mache ich über einen ContentProvider.

Gruß
derjens
 
Zuletzt bearbeitet:
F

Flixius

Fortgeschrittenes Mitglied
Ohne Code kann man dir da glaube ich nicht viel weiter helfen. Prinzipiell hat der Cursor, mit dem du über SQLite die Datenbank abfragst nichts mit dem Adapter zu tun, der für die Datenhaltung in deiner ListActivity zuständig ist.

Normalerweise sieht der Weg so aus, dass man mit dem Cursor die Values aus der DB holt, sie in ein Objekt packt und dieses Objekt dem Adapter übergibt.
 
S

swordi

Lexikon
wenn du einen CursorAdapter nutzt, hat der Cursor natürlich was mit deinem Adapter zu tun :)
 
derjens

derjens

Ambitioniertes Mitglied
Hallo Jungs.

Habe meine Frage mal umformuliert.

Gruß
derjens
 
Thyrion

Thyrion

Ehrenmitglied
derjens schrieb:
Wie bekomme ich es hin das ich die Buchungen für jedes Projekt abfrage um die Gesamtstunden zu berechnen die ich in der ListActivity ausgeben will??
Ich würde die SELECT-Anweisung entsprechend formulieren. Dazu eignen sich dann die SUM()-Funktion in Kombination mit der GROUP BY-Klausel. Also irgendwas in der Art:

Code:
SELECT p.ProjektID, p.Projektname, SUM(b.Stunden) AS SummeStunden
FROM Projekte p INNER JOIN Buchungen b ON p.ProjektID = b.ProjektID
GROUP BY p.ProjektID, p.Projektname

-> SQLite Aggregate Functions
 
Zuletzt bearbeitet:
derjens

derjens

Ambitioniertes Mitglied
Danke Thyrion.

Werde mir das mal etwas genauer anschauen.

Gruß
derjens
 
derjens

derjens

Ambitioniertes Mitglied
Hallo Thyrion.

Hab mal deinen vorschlag etwas weiter gesponnen und folgendes SQL Statment gebastelt:

Code:
SELECT p._id, p.bezeichnung, 
GROUP_CONCAT (b.startzeit , ',') AS buchung_start,
GROUP_CONCAT (b.endzeit , ',') AS buchung_ende
FROM projekt p 
LEFT OUTER JOIN buchung b ON b.projekt_fk = p._id
GROUP BY p._id, p.bezeichnung
als Ausgabe erhalte ich dann diese

1 | Projektname | 07:30,07:31,07:32 | 13:45,14:30,11:30
2 | Projektname | 08:30,08:31,08:32 | 12:30,12:00,15:30
3 | Projektname | {null} | {null}
4 | Projektname | {null} | {null}
5 | Projektname | {null} | {null}
6 | Projektname | {null} | {null}
7 | Projektname | 08:39 | 24:00
8 | Projektname | {null} | {null}

Ich glaub damit kann ich was Anfangen ;)

Gruß
derjens
 
Ähnliche Themen - SQLite Query in class CursorAdapter geht nicht :( Antworten Datum
5