Startseite › Foren › Deutsches LiveCode-Forum › Veränderungen in einer App speichern
Schlagwörter: save state, speicher
- Dieses Thema hat 11 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 5 Jahren, 10 Monaten von SashMo.
-
AutorBeiträge
-
-
Dezember 11, 2018 um 16:25 Uhr #9319
Ohje… ich glaube ich bin angefixt… 🙂
Ich habe einfach ein bisschen mit LiveCode rumgespielt und eine Android-“App” erstellt. Die macht auch fast alles was sie soll. 🙂 Naja… eigentlich soll sie ja nicht viel machen. Aber es wäre schön, wenn sie Veränderungen (z.B. umgelegte SwitchButtons) speichern würde. Ich finde gelegentlich Hinweise aber mir fehlt noch DIE Quelle, die mir von vorne bis hinten erklärt, warum ich welches Script wo hineinschreiben muss, damit Einstellungen auch beim nächsten Start wieder geladen werden. Hat vielleicht jemand einen Artikel für mich? 🙂
viele Grüße ausm Kreis PB
SashMo -
Dezember 11, 2018 um 18:57 Uhr #9325
Ein kleines Bisschen weiter…
Ich habe bis Folgendes gefunden: Save current state on mobile
on shutdown --set default folder to writeable directory on mobile set the defaultFolder to specialFolderPath("Documents") --puts the name of the current card into a text file called mobiletest.txt put the short name of this card into URL ("file:mobiletest.txt") pass shutdown end shutdown
und
on openStack --set default folder to folder with text file in it set the defaultFolder to specialFolderPath("Documents") -- places the contents of this text file into a temp variable put URL ("file:mobiletest.txt") into tState --navigates to the card names in the temp variable go card tState end openStack
Das bewirkt allerdings nur, dass ich beim öffnen der App wieder auf der Card lande, auf der ich mich zuletzt aufgehalten habe. So weit so gut… Nur die Buttons bleiben noch nicht gespeichert. Dafür fehlt mir wahrscheinlich irgendwas Grundlegendes. 🙂
lg
-
Dezember 11, 2018 um 23:27 Uhr #9334
Hallo, SashMo,
save this stack
im Script des ‘SwitchButton’ oder in die Message Box getippt, sorgt dafür, dass Dein Programm seinen jeweiligen Status behält (auch nach Beenden und Neustarten).Gruß
Peter
-
Dezember 12, 2018 um 17:49 Uhr #9356
Hallo pderks, 🙂
vielen Dank für deine Antwort. Leider hat es nicht den gewünschten Effekt. Nach dem Schließen/Oeffnen ist der SwitchButton wieder deaktiviert.
viele Grüße
Sascha -
Dezember 12, 2018 um 17:55 Uhr #9358
Hi Peter,
gute Idee, aber das klappt nicht bei Stacks, die wir als Standalone gespeichert haben, und davon ist hier die Rede.
Du weisst nun wie und wo Du etwas speichern kannst, nun musst Du nur noch entscheiden WAS genau du speichern möchtest. Es gibt keine geneuen Regeln, wie Du Diene infos speicerhn möchtest, daher mnusst Du dir etwas überlegen.
eine Option ist, für jede Info eine neue Zeile in besagtem Textdokument zu erstellen, z.B.
... put the hilite of btn "eine checkbox" of cd 47 into tHilite1 put the hilite of btn "noch eine checkbox" of cd 11 into tHilite2 put the thumbpos of scrollbar "ein scrollbar" of cd 1 into tScrollBarThumb ## Nun schreiben wir diese drei Werte in eine Datei, ein Wert pro Zeile: put specialfolderpath("documents") & "/mobiletest.txt" into tFile put tHilite1 & CR & tHilite2 & CR & tScrollBarThumb into url("file:" & tFile) ...
Zack, Präferenzen gespeichert!
on openstack put specialfolderpath("documents") & "/mobiletest.txt" into tFile ## IMMER alles überprüfen! if there is not a file tFile then exit openstack end if ## Datei vorhanden, nun einlesen: put url("file:" & tFile) into tMeinePrefs ## Nun Werte aus Datei auslesen und entsprechend im Stack einstellen: set the hilite of btn "eine checkbox" of cd 47 to line 1 of tMeinePrefs set the hilite of btn "noch eine checkbox" of cd 11 to line 2 of tMeinePrefs set the thumbpos of scrollbar "ein scrollbar" of cd 1 to line 3 of tMeinePrefs ## Fertig, Präferenzen eingelesen und wieder gesetzt! ## Logisch, oder? end openstack
Gruß
Klaus
-
Dezember 12, 2018 um 19:24 Uhr #9368
Hallo Klaus!
Vielen herzlichen Dank (mal wieder) für deine ausführliche Antwort. Damit werde ich erstmal rumprobieren und lernen. 🙂 Ja, das klingt erst einmal logisch.
viele Grüße aus PB
Sascha -
Dezember 13, 2018 um 16:30 Uhr #9383
Aaaalso mein Stack (hab nur einen) für meine ersten Gehversuche einer Android-App sieht nun so aus:
on shutdown set the defaultFolder to specialFolderPath("Documents") put the hilite of widget "SwitchButton" of card "Card" into tHilite1 put specialfolderpath("Documents") & "/saves.txt" into tFile put tHilite1 into url("file:saves.txt" & tFile) end shutdown on openstack put specialfolderpath("Documents") & "/saves.txt" into tFile if there is not a file tFile then exit openstack end if put url("file:saves.txt" & tFile) into tMeinePrefs set the hilite of widget "SwitchButton" of card "Card" to tMeinePrefs end openstack
Es hat bisher noch nicht geklappt, dass der SwitchButton (ist ein Widget), bei einem Neustart der App seinen Zustand beibehält. Ich bin noch auf Fehlersuche. 🙂 Vielleicht hat jemand Zeit uns Lust dazu ein Kommentar abzugeben.
Übrigens: Gibt es einen bestimmten Android-Emulator zu empfehlen damit ich nicht immer mit meinem Handy rumhantieren muss? Oder ist es egal hauptsache kann *.apk öffnen?
Viele Grüße
-
Dezember 13, 2018 um 16:47 Uhr #9387
Hallo Sasha,
on shutdown ## Entweder den ABSOLUTEN Pfad benutzen ODER mit DEFAULTFOLDER arbeiten, ## beides ist doppelt gemoppelt! ## set the defaultFolder to specialFolderPath("Documents") put the hilite of widget "SwitchButton" of card "Card" into tHilite1 ## Genau, absoluter PFAD ist immer vorzuziehen! put specialfolderpath("documents") & "/saves.txt" into tFile ## Wieder doppelt-gemoppelt, aber leider unausführbar! ## tFile enthält bereits den benötigten Pfad, Du versaust ihn aber wieder, ## in dem Du noch mal den Dateinamen davorstellst! ## put tHilite1 into url("file:saves.txt" & tFile) ## So geht's, genau wie in meinem Beispiel! put tHilite1 into url("file:" & tFile) end shutdown
Dito hier:
on openstack put specialfolderpath("documents") & "/saves.txt" into tFile if there is not a file tFile then exit openstack end if ## siehe oben, so wird das nix! ## put url("file:saves.txt" & tFile) into tMeinePrefs put url("file:" & tFile) into tMeinePrefs set the hilite of widget "SwitchButton" of card "Card" to tMeinePrefs end openstack
Also das mit den Dateipfaden musst Du Dir aber noch einmal auf der Zunge zergehen lassen! 😎
Wegen Android-Emulator, sorry, keine Ahnung.
-
Dezember 13, 2018 um 20:16 Uhr #9389
Wie sagst du an manchen Stellen so schön? Kaum macht man (ich) es richtig und schon funktionierts! :-)) Vielen, vielen Dank. Kann man dir auch was Gutes tun? Aber… von Programmierung habe ich keine Ahnung wie du siehst. 😉
viele Grüße
Sascha -
Dezember 13, 2018 um 20:29 Uhr #9391
Kaum macht man (ich) es richtig und schon funktionierts! :-))
Yo! 🙂
Ich bin seit vielen Jahren arbeitslos, falls Du ein paar Euro entbehren und auf mein PayPal Konto zahlen könntest, wäre das schon prima. Konto: klaus AT major-k.de
Das AT natürlich durch @ ersetzen.Aber muss wirklich nicht sein. 🙂
Ich biete auch Mentoring, Schulung etc. für LC an, bei Bedarf eine Mail an mich, Adresse siehe oben.
-
Dezember 13, 2018 um 21:12 Uhr #9393
Vielen Dank, Sascha, ich weiß das sehr zu schätzen!
-
Dezember 13, 2018 um 21:27 Uhr #9398
Nicht der Rede wert. Ich weiß wie viel Geduld man manchmal braucht, um Anfängern (insbesondere mir) etwas beizubringen. Wenn ich hier so im Forum lese, scheinst du da unerschütterlich zu sein. Ich bin dir da sehr dankbar.
viele Grüße
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.