App für einen Lernplan

  • Hallo,


    ich möchte gerne mal das Rad neu erfinden und eine "einfache" App für einen Lernplan selbst machen, der jeden Tag ein neues Thema vorschlägt und am unteren Ende eine Mögilchkeit bietet, eine Rückmeldung per Mail zu senden.


    Bisher habe ich folgendes geschafft:

    • zwei Activities:

      • Main Activity für den aktuellen Tag und
      • Calender Activity für die Kalenderansicht


    • in der Main Activity:

      • Anzeigen des aktuellen Datum in TextView
      • eine Überschrift in TextView
      • auch einen Kasten für die Erklärung als Textview
      • Button, um zur Kalenderansicht zu gelangen, der auch funktioniert! :)
      • Button, um Mail zu versenden mittels externe App, z,B. Gmail -> funktioniert auch gut! :)

      in der CalendarActivity:

      • CalendarView
      • Button, um zu Main Activity zu kommen -> funktioniert auch!
      • Button, um zum gewählten Datum zu gehen -> das muss noch umgeetzt werden


    nun die Frage:

    • wie stelle ich es an, damit ich für jeden Tag die EInträge aufschreiben kann? ich hoffe, dass ich nicht 365 Activites erstellen muss für jeden Tag :(
    • wie mache ich das, dass ich via Kalender auf bestimmten Tag komme? ich muss ja irgendwie jeden Tag im Kalender anhand xes Datums ansprechen können und diesen öffnen. Der Button dafür ist schon da in CalendarActivity


    vielen Dank für Eure Ideen!

  • Hallo
    Zu deiner ersten Frage.
    Dazu solltest du dich mal mit dem Thema Datenbanken auseinandersetzen.
    Hier stellt sich erstmal die Frage ob du die Daten local oder sogar online Speichen willst.
    Für den Anfang würde ich sagen versuche es erst mal lokal mit der Sqlite DB die in Android verfügbar ist.


    Zu Frage zwei. Was willst du da?


    Sollen die gesammelten Daten, aus der DB in einer eigen Kalender ähnlichen Übersicht angezeigt werden?


    Oder wist du das irgendwie in dem Android oder sogar in den Google Kalender anzeigen.


    Bei dem Android Kalender solltest du dich mit dem Thema Content Provider beschäftigen. Denn nur über den Android Kalender Provider kannst du darauf zugreifen.


    Beim Google Kalender solltest du dir die Google API ansehen.

  • Hallo,


    1. das mit der Datenbank hört sich vernünftig an. ich werde es mir anschauen.


    2. ich möchte, dass der Nutzer aus dem Kalender ein Datum aussuchen kann. wenn er da auf "OK" drückt, dann soll er in den Inhalt gelangen, der zu diesem Datum gehört.
    Also im Prinzip wie wenn man vorher einen EIntrag ins Tagebuch geschrieben hat und jetzt wähle ich dieses Datum, um den EIntrag zu lesen.


    mittlerweile habe ich das Anzeigen des Kalender mit dem DatePickerDialog realisiert.
    jetzt muss ich das ausgewählte Datum als Schlüssel nutzen, um den entsprechenden Eintrag aus der Datenbank zu holen.
    So zumindest meine leienhafte Vorstellung....ich versuche es mal.


    ich melde mich wieder.


    Danke erst einmal.

  • hi,


    mittlerweile habe ich mich etwas rumgelesen und bin auf JSON aufmerksam geworden.
    hab JSON files z.B . "20200331.json" für die Aufgabe am 31.03.2020 erstellt, das in etwa so aussieht:

    JavaScript
    {
      "date": "31/03/2020",
      "topic": "topic 31",
      "todaysTask": "task 31"
    }


    dazu eine Klasse erstellt "dailyTask":

    Code
    data class dailyTask(val dateToday: String? = null,
                         val topic: String? = null,
                         val todaysTask: String? =null)
    {
    
    
    }


    bevor ich mit GSon ein Objekt der Klasse erzeugen, ermittle ich den Json-Datenamen ("heute"), den ich eigentlich als Variable nutzen will, um eben das Objekt zu erzeugen. diesen String "heute" bzw. dessen Elementen ist ermittelt worden aus dem augewählten Datum im Kalender:

    Code
    val heute = auswahlJahr.toString()+auswahlMonat.toString()+auswahlTag.toString()
    
    
    val heutigesDatum = Gson().fromJson(heute,dailyTask::class.java )


    nur wenn ich denn nun z.B. die Eigenschaft "todaysTask" in Textview mit id "heuteAufgabe" ausgeben will wie folgt:

    Code
    heuteAufgabe.text = heutigesDatum.todaysTask

    dann stürzt die App ab!!!


    ich habe keine Ahnung, warum. könnt ihr mir helfen?

  • Hallo


    So geht das mit Sicherheit nicht.



    Du hast eine Daten Kasse willst die auch füllen. Tust du aber nicht.



    Was du hier machst ist nur einen normalen String erstellenzb. 2020224
    val heute = auswahlJahr.toString()+auswahlMonat.toString()+auswahlTag.toString()




    daraus kannst kein Json Objekt machen.





    Dann willst du aus deinem vermeintlichen Json Objekt lesen. Kann nicht gehen den du hast kein Objekt nur einen String in der form „2020224“


    val heutigesDatum = Gson().fromJson(heute,dailyTask::class.java )
    Ein Objekt von Typ Json hast du nicht "heute" ist nur ein einfacher String. Vorallen nicht in der Json form .Und deine Kalasse ist lehr.



    also in etwa so


    Code
    val heute =dailyTask(auswahlJahr.toString(),auswahlMonat.toString(),auswahlTag.toString())
    val heutigesDatum = Gson().toJson(heute)
    
    
    heuteAufgabe.text = Gson().fromJson(heutigesDatum,dailyTask::class.java ).toString()




    Um aber aus deinem Json Objekt einen sinnvollen String zum Anzeigen zu bekommen, solltest du dir noch eine noc eine Methode schreiben.



    Im Übrigen verstehe ich nicht warum du den Umweg über Json machst.


    Kannst ja direkt auf deine Daten Klasse zugreifen.

Jetzt mitmachen!

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