Veränderte Einträge im Stack auf Android speichern

Startseite Foren Deutsches LiveCode-Forum Veränderte Einträge im Stack auf Android speichern

Schlagwörter: 

Ansicht von 6 Antwort-Themen
  • Autor
    Beiträge
    • #22597
      pitschi67
      Teilnehmer

      Hallo,
      ich bin Frischling und habe gerade meine erste App geschrieben.
      Nun zu meiner Frage:
      Ich habe eine Android APP erstellt, in der der Anwender einige Textfelder und Combo Box Menüs deren Werte ändern kann.
      Diese vom Anwender eingestellten/veränderten Werte, sollen auf dem Handy gespeichert werden.
      Beim Neustart der APP sollen die veränderten Werte dann angezeigt werden.

      Meine App besteht aus einem Stack und 4 Cards.
      Ich habe auf jeder Card einen Button, der die geänderten Werte beim betätigen speichern soll.
      Allerdings bekomme ich kein Skript hin, welches mir die Speicherung ermöglicht.

      Vielleicht hat wer einen Tipp für mich.

      Danke

    • #22599
      Klaus Major
      Verwalter

      Hallo Pitschi67,

      diese Frage tauch mehr oder weniger regelmäßig hier auf.
      Schau mal hier, vielleicht hilft Dir das weiter, wenn nicht, bitte nachfragen:
      https://www.livecode-blog.de/forums/topic/beim-ersten-starten/

      Gruß

      Klaus

    • #22603
      pitschi67
      Teilnehmer

      Hallo Klaus,

      Danke für deine Info.
      Ich habe hier schon alles mit der Suche überprüft, leider ohne Erfolg.
      Deswegen mein Thema.
      Ich habe aber dem Thorsten eine Frage gestellt und hoffe er kann mir helfen.

      Gruß
      Dirk

    • #22606
      Klaus Major
      Verwalter

      Ich bin nicht der Thorsten, habe aber die Frage zum Teil beantwortet, ich hoffe, das ist genehm! 😎

    • #22608
      pitschi67
      Teilnehmer

      Hallo Klaus,
      danke für deine Hilfe.
      So wie ich deine Anleitung verstehe, speichere ich damit nur ein Taxtfeld.
      Aber ich habe ca. 20 Felder die vom Anwender geändert werden auf jeweils 4 Cards.
      Da würde es ja einfacher sein (sollte es funktionieren) den gesamten Steck einmal zu speichern.
      Wie gesagt, dafür möchte ich einen Button benutzen.

    • #22609
      Klaus Major
      Verwalter

      Sicher wäre es einfacher, den ganzen Stack zu speichern, aber der Weg dahin ist mindestens so steinig, wie 20 Textfelder speichern zu müssen.

      Das Speichern von Userdaten wird Dir noch sehr, sehr oft begegnen, daher solltest Du versuchen, genau zu verstehen, wie man das macht!

      Mein Beispiel war sicher nur für EIN Textfeld, aber die Technik ist identisch für N Texfelder!
      Du könntest z.B. alle Deine Texte in einem Array sammeln und dann das Array abspeichern, später wieder einlesen und die Daten auf Deine Felder und Karten verteilen.

      Beispiel als eigene Handler, die Du wann auch immer aufrufen kannst.

      ## Diese beiden Handler sollten ins STACK Skript gehen!
      command alles_speichern
         ## Deine Felder sammeln und ins Array schreiben:
         put fld 1 of cd 1 into tArray[1]
         put fld 2 of cd 1 into tArray[2]
         ## etc.
         ## ...
         put fld 4 of cd 4 into tArray[16]
           
         ## Dateiname zusammenbasteln:
         put specialfolderpath("documents") & "/alle_daten.bin" into tDatei
         
         ## Nun dass Array encoden und wegschreiben, aber in eine BINFILE!
         put arrayencode(tArray) into url("binfile:" & tDatei)   
      end alles_speichern

      Wieder einlesen

      ## Könntest Du bei PRE-/OPENSTACK aufrufen
      command alles_einlesen
      
       ## Dateiname zusammenbasteln:
         put specialfolderpath("documents") & "/alle_daten.bin" into tDatei
         if there is a file tDatei then
            put url("binfile:" & tDatei) into dasArray
         else
            ## Nichts gespeichert, also weg hier:
            exit alles_einlesen
         end if
         
         put arraydecode(dasArray) into tArray
         
         ## Nun die Daten wieder aufdröseln und auf die Felder Deiner App verteilen:
         put tArray[1] into fld 1 of cd 1
         put tArray[2] into fld 2 of cd 1 into
         ## etc.
         ## ...
         put tArray[16 ] into fld 4 of cd 4
      end alles_einlesen
    • #22611
      pitschi67
      Teilnehmer

      Oh oh, das sieht für einen Programmierneuling wild aus, aber da muss ich wohl durch.
      Danke dir.
      Ich werde mich mal damit auseinandersetzen und melde mich ob ich es hin bekomme.

Ansicht von 6 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.