SQLite-DB mit Listview verbinden (Datum, Uhrzeit und Boolean)

  • Mahlzeit zusammen,


    als Android/ JAVA-Anfänger möchte ich mich in den nächsten Tagen an das Herzstück meiner App versuchen und die Daten meiner MainActivity mit der SQLitde-DB verbinden die dann anschliessend in einer Listview angezeigt werden sollen.


    Ich habe mir diverse Bücher gekauft (und auch gelesen) im Internet/ dieses Forum nach dem Thema nachgeschlagen jedoch fühle ich mich nicht in der Lage meine Idee damit umzusetzten daher hoffe ich auf Hilfe hier im Forum.


    Hier mein Problem:


    Ich möchte die Userdaten meiner App in Form eines Datum, Uhrzeit, ein Texfeld und diverse Radiobuttons und einer Optionsgruppe (Feld 1, 2 und 3) in einer SQLite-DB speichern (siehe angehängte Fotos), jedoch benötige ich ein Beispielcode wo ich mir abschauen kann wie man dieses umsetzt da mir leider die nötigen Programmierkenntnisse fehlen um das selber zu schreiben.


    Ich würde mich freuen, wenn jemand so nett ist und mir den Hinweis gibt wo ich ein "simplen" Beispielquellcode finde damit ich diese abkupfern kann. Das Thema SQLite-DB in Android scheint doch etwas komplex für einen Anfänger und gerade mit Datum und Uhrzeit + diverse Booleans bin ich etwas überfordert.


    Vielen Dank für Eure Tipps & Hinweise


    Gruß Katsche

  • Da gibt es eigentlich ein paar brauchbare Tutorials für.


    Zum Beispiel von Lars Vogel oder auch direkt von Google.


    Kleiner Hinweis:
    SQLite kann keine Boolean-Werte sichern. Nimm dafür einfach 0 für false und 1 für true. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • vielleicht kann man dir ja auch hier helfen... gut wäre dafür aber zu wissen, welche Kenntnisse du schon hast in Bereichen:


    - SQLite DB in Android
    - ContentProvider
    - ListView
    - CursorAdapter


    Das sind jedenfalls die Dinge, die ich bei mir gebraucht habe. Codeschnipsel werden ohne Erklärung nicht viel bringen, da es doch recht viel ist. Schriftlich zu erklären wird kompliziert und zeitaufwändig


    und was du bereits in deiner App hast, also SQLite DB und Activitys wo die Daten schon eingegeben und gespeichert werden oder so müsste man auch wissen um nicht unnötig drum herum zu reden..

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • Sorry da kenn ich leider nichts. Hab mir das Tutorial angeschaut das Lucas gepostet hat. Glaube jedenfalls dass es das war.
    Habe es aber nicht zuende gemacht, nebenbei immer geschaut, wie ListView Cursor und CursorAdapter zusammenarbeiten, wie man sich nen eigenen Adapter baut und wie man die SQLite DB in einen ContentProvider "verpackt"


    eigener Cursor Adapter wird in deinem Fall wohl auch nötig sein... ich finde deine App bzw. dein Vorhaben hat mittlerweile ein Level erreicht, in dem das einfache kopieren aus Codeschnitpseln nicht mehr ausreicht, weil man alles an eigene Bedürfnisse anpassen muss. Dafür muss man schon verstehen, wie die einzelnen Dinge in Android laufen.


    Ich bin da nicht drum rum gekommen..

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • .rar ist ein Dateiformat, das ich nur ungern nutzen mag.
    Kannst du es eventuell noch mal als zip, tar.gz oder Ähnliches hochladen?

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • >>.rar ist ein Dateiformat, das ich nur ungern nutzen mag...


    kannst du das bitte begründen ?
    Ich sehe auf Anhieb keinen Grund.


    Ich bin ein Unix Kommandozeilenfreund und ein unrar Tool gehört nicht zum Lieferumfang meiner Distribution. Erschwerend hinzu kommt, dass nachinstallierte unrar ein gravierendes Softwareupdate meist nicht überleben. Dementsprechend habe ich keinerlei Motivation, für ein bis fünf Dateien im Jahr das unrar Tool immer und immer wieder installieren zu müssen.


    Würde ich fertige Entpacker wie 7z oder so etwas nutzen, sähe ich die Sache auch anders.
    Meine Lieblinge bleiben aber die gepackten Teerklumpen. Einfach weil es keinerlei Lizenzprobleme gibt und gab[1] und sie sich seit mehr als 35 Jahren bewährt haben[2].


    1) Gemäß Wikipedia gab es von 09/2001 bis 07/2010 keine Möglichkeit, Formatversion 3 ohne die kostenpflichtige WinRAR zu entpacken. Sprich: Windows-Benutzer mussten zahlen und alle Anderen konnten mit dem Format überhaupt nichts anfangen. Das ist nicht das, was ich unter einem komprimierten Austauschformat verstehe – weil es das Austauschen einfach unmöglich macht.
    http://de.wikipedia.org/wiki/RAR_(Dateiformat)#Verbreitung
    (Die Verbreitung spricht nicht über die aktuelle Version des RAR-Formats in WinRAR 5, mutmaßlich lässt die sich so gar nicht entpacken...)


    2) RAR 0.1 (03/1993) vs. TAR (für mich nicht mehr feststellbar und im Zweifelsfall mit der Einführung von UNIX schon fertig gewesen. Auf alle Fälle wird erwähnt, dass es Versionen von tar bereits vor Einreichung des POSIX.1-1988 Standards gab – und der wurde wie der Name schon sagt 1988 festgelegt)
    http://de.wikipedia.org/wiki/RAR_(Dateiformat)#Geschichte
    http://en.wikipedia.org/wiki/Tar_(computing)#File_header
    http://en.wikipedia.org/wiki/POSIX#Name


    Insofern ist das RAR-Format meiner Meinung nach einfach nicht transparent, konsistent und gepflegt genug für ein komprimiertes Austauschformat.
    Naja, und das Zip-Format, welches 1989 als PKZIP/PKUNZIP veröffentlicht wurde und die Teerklumpen zusammenschnürt, ist halt ein wunderbares Format für Windows-User, die nichts von Teerklumpen halten.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • tar ist in meinem Exemplar von "Banahan Rutter - UNIX" von 1984 schon aufgelistet. Die englische Originalausgabe war 1982. Daher würde ich ebenfalls vermuten dass es tar schon auf der PDP11 gab...


    Und der Befehl 'tar xvf file' ging damals auch schon :) Nur die Option z (zip) gab es nicht.

    2) RAR 0.1 (03/1993) vs. TAR (für mich nicht mehr feststellbar und im Zweifelsfall mit der Einführung von UNIX schon fertig gewesen. Auf alle Fälle wird erwähnt, dass es Versionen von tar bereits vor Einreichung des POSIX.1-1988 Standards gab – und der wurde wie der Name schon sagt 1988 festgelegt)

  • Hatte denn schon jemand die Zeit gefunden sich mein App-Projekt anzuschauen?


    Ich habe mal kurz darüber geschaut und fühle mich in meinem Verdacht bestätigt.


    Du solltest dich wirklich einmal hinsetzen und das Getting Started Tutorial von Google durcharbeiten. Damit baust du dir zwar nicht 'deine' App, doch wenn du dich da durchgebissen hast, dann hat dir das ein gewisses Maß an Wissen für deine App gebracht.


    Also wirklich:
    Dein Programm komplett bei Seite packen und außer Acht lassen, nur nach diesem Tutorial vorgehen und nach jedem Schritt reflektieren: "Was habe ich gerade getan?", "Warum habe ich das gerade getan?", "Was würde passieren, wenn ich das anders getan hätte?".


    Lesen, zu Verstehen glauben, zurückspringen und einbauen funktioniert einfach nicht.
    Das sieht man leider in vielen Belangen schon an deiner App.


    Die Idee mit der Begrüßung ist super. Um 12:30 noch mit 'Guten Morgen' begrüßt zu werden finde ich allerdings befremdlich.
    Du gibst den Tipp die Uhrzeit auf 15 Minuten genau einzugeben. Im Dialog kann ich es aber minütlich eintragen.
    Und das Beste: der Speichern-Button führt sofort zu einem Absturz, weil die Instanzvariable für den Button einfach nicht gesetzt ist.


    Für welche Plattform wolltest du das Ganze entwickeln? Also welches API Level?
    (Hab da eine Menge von deprecated Methoden gefunden, deshalb frag ich.)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hi,


    da das Projekt nur für mich sein soll jedoch ich das einigen Leuten zum testen geben möchte habe ich min. Version 2.2 und max. Version 4.0.3 angepeilt. Ohne gute bis sehr gute JAVA/Androidkenntnisse werde ich den Teufel tun und die App bei Google hochladen, ist mir einfach zu riskant.


    Da mir die CED-App leider noch nicht fertig zur Verfügung steht speicher ich meine jetzigen Daten in Excel ab und da habe ich mir eine Zeitleiste über die häufigsten Stuhlgangzeiten erstellt (siehe Anlage), hier sind zur besseren Übersicht die Daten auf 15 Minuten gerundet. Am Ende des CED-Projekts ist es mein Ziel die SQLite-Daten als CSV-Datei zu exportieren und in meiner Exceldatei zu importieren. Sprich: Datenaufzeichnung per App, genaue Auswertung per Excel.


    Der Speichernbutton ist erstellt jedoch noch nicht aktiv da die SQLite-DB nicht funktioniert wo wir wieder bei meinem Treadproblem sind.


    Für jemanden der vor ca. 12 Wochen noch keinen Plan von JAVA/Android hatte und völlig alleine ist (ohne Lehrer oder Kumpel der mir hilft) bin ich doch aber erstaunlich weit gekommen und da darf man doch über einige Fehler hinwegsehen oder?


    Mein erklärtes Ziel ist es dieses Projekt durchzuziehen und zum laufen zu bringen 8)...allerdings brauche ich Lob und Ermutigungen + Tipps, Ratschläge, Hinweise und vor allem Beispielcodes.


    Gruß Katsche

  • Nun, in einem Punkt hast du recht: du bist wirklich weit gekommen. Chapeau!


    Nur: dein Problem liegt (in dem mir vorliegenden Code) gar nicht an der Datenbankarbeit. Bis dahin kommt der Code nämlich gar nicht.
    Du hast zwar eine Methode erstellt, die genau so heißt, wie die Instanzvariable. Doch diese Methode greift auf die leere Instanzvariable zu und führt zum Absturz bevor überhaupt irgendetwas an der Datenbank gemacht werden konnte.


    Bitte schau dir grundlegende Tutorials an. Vor Allem beim Verdrahten von UI und Code scheint es bei dir noch viele Probleme zu geben.


    Gern würde ich dich bei deinem Projekt unterstützen, das käme auch meiner Schwiegermutter zu Gute.
    Nur fehlt mir dafür definitiv die Zeit. :-/

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Moin,


    mit meinem SQLite-Problem bin ich leider immer noch nicht weiter daher bitte ich erneut um Hilfe bzw. Tipps.


    Bei dem Versuch meine Daten in der DB zu speichern erhalte ich folgenden Meldung im LogCat, hier bin ich mir nicht sicher wo ich ansetzten muss um das Problem zu lösen.


    Code
    sqlite returned: error code = 1, msg = near "cedtabelle": syntax error, db=/data/data/com.example.cedapp/databases/ced.db


    Unter diesem Link findet Ihr mein bisheriges Projekt:


    http://www.uploadarea.de/uploa…zgtt6tij4yqm17a482ch.html


    Kann mir zudem jemand sagen ob mein Datenmodel zumindest richtig ist?


    Gruß Katsche

  • Also auf die Schnelle finde ich die Ursache nicht heraus.
    Das passiert halt, wenn man alle Exceptions abfängt und weniger hilfreiche Infos statt Ihrer auswirft.


    Es sieht alles danach aus, als läge das Problem beim Auslesen der gespeicherten Daten.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Guten Morgen zusammen,


    ich habe in den letzten paar Tagen versucht ein verständnis dafür zu bekommen wie das funktioniert mit der SQLite-DB und dem verbinden in einer ListView. Ich habe mir diverse Beispiele angeguckt und auch zum laufen gebraucht jedoch das erlernte in meinem CED-Projekt umzusetzten klappt dann doch wieder nicht. [Blockierte Grafik: http://www.androidpit.de/img/emoticons/angry.gif]


    Ich habe hier: http://www.uploadarea.de/uploa…eolckl7sihdy1jq6a3p3.html nochmal mein Projekt hochgeladen und würde mich freuen wenn sich das nochmal jemand anschauen könnte.


    Im Eingabeformular sollen Datum und Uhrzeit + optional Hinweistext ausgewählt und auf den Speicherbutton sollen die Daten in die DB geschrieben werden, alle anderen Funktionen sind noch nicht verknüpft.


    Ich vermute den Fehler in meiner SecondActivity in Zeile: 198-210 (für den DBAdapter) und in Zeile 243-246 (Übergabe Datum&Uhrzeit in die Datenbank).


    Mein Code scheint etwas durcheinander zu sein und derzeit wüsste ich nicht wie ich das gerade ziehen soll, daher benötige ich Hilfe von einem fortgeschrittenen Programmierer der diesen Code lesen kann.


    Mein Hauptziel ist es die Daten in die Datenbank und dann in die ListView anzeigen zu lassen.
    Oder habe ich evtl. einen größeren Fehler in meinem Projekt? Wie gesagt, Datum + Uhrzeit + Hinweistext sind erstmal angestöpselt... Rest soll später folgen.


    Würde mich sehr über Eure Tipps und Hilfe freuen.


    Gruß Katsche

  • Du musst erstmal die Daten in die DB eintragen, und danach die ListView, bzw. den Cursor der ListView aktualisieren, damit die neuen Daten auch angezeigt werden.
    Ich kann frühestens heute Abend gegen 20 Uhr in dein Projekt rein schaun. Vielleicht schafft es jemand früher.


    btw. nochmals als Tipp für die Zukunft... aktivitys sollten logische Namen haben... "secondActivity" ist kein Hilfreicher Name, um nach z.B. 5 Monaten noch zu verstehen, was in der Activity angezeigt wird oder passiert. ;)

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • Hi Funtik,


    ja, Du hast recht....werde ich mir merken mit den Namen.


    Irgendwie gefällt mir die Struktur auch noch nicht... nunja, mein erstes Projekt halt :-/


    Wie gesagt ....habe aus einem funktionierendem Beispiel die Daten in mein Projekt übernommen....Ich vermute ich habe mich noch irgendwo verhauen mit Thrid_Activity.java und ListeActivity.java.


    Wäre echt nett wenn jemand das Puzzle entschlüsseln könnte und mir erklärt wo der oder die Fehler liegen damit ich diese nicht wiederhole und auch verstehen lerne.


    Gruß Katsche

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!