Startseite › Foren › Deutsches LiveCode-Forum › Close Stack open Stack (Android 8.1)
- Dieses Thema hat 19 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 5 Jahren, 6 Monaten von Klaus Major.
-
AutorBeiträge
-
-
April 11, 2019 um 21:52 Uhr #14023
Huhu,
kurz zu meiner mini App.
– Main Stack (Startbildschirm mit Infos und einem Button zu Sub Stack 1)
– Sub Stack 1 (Bildergalerie mit Vergrößerungsfunktion und Auswahlmöglichkeit einzelner Bilder max 10)
– Sub Stack 2 (Letzter Screen mit abschließenden Infos und einem Textfeld sowie einem Speichern Button)Kurz zur gewünschten Funktion:
Eine kleiner Bildbetrachter für Kinder, diese sollen ihre zehn Lieblingsbilder auswählen können.
Nach dem Drücken des ersten Button landet man in der Bildgalerie, in der man max zehn Bilder auswählen kann. Die Dateinamen der ausgewählten Bilder sollen dabei in einer Variable (Array) abgelegt werden. Die Bilder sollen automatisch aus einem Verzeichnis in ein Datagrid geladen werden.
Im letzten Screen sollen die Kinder ihren Vornamen angeben, dieser wird dann zusammen mit dem Array in eine Textdatei geschrieben.Ergebnis in der Datei sollte etwa so aussehen:
Tom | 2.jpg | 5.jpg | 8.jpg
Lea | 2.jpg | 8.jpg | 12.jpg | 15.jpg
Ben | 1.jpg | 9.jpg | 12.jpg | 16.jpg | 20.jpg | 23.jpgSoweit die Idee.
Nun die Fragen:
Ist das mit Livecode umsetzbar?
Warum wird der Mainstack unter Windows im Test (1. Button) geschlossen und der Galerie Stack geöffnet, unter Android 8.1 im Livetest aber nicht?Hier der Code für den 1. Button auf dem Mainstack:
on pressclose stack “main”
open stack “galerie”end press
Vielen Dank vorweg.
Tobias
-
April 11, 2019 um 22:15 Uhr #14025
Hallo Tobias,
1.on press close stack "main" open stack "galerie" end press
Du meinst sicher “on mouseup”, oder?
Auf der mobilen Platform kann immer nur EIN Stack zur selben Zeit angezeigt werden, daher siehst Du eigentlich nicht, daß natürlich der Befehl “close stack xyz” den Stack auch wirklich schliesst!2. Ja, klingt alles durchaus machbar in LC.
Allerdings benötigst Du nicht wirklich Substacks hierfür.
Ein paar weitere Karten im Mainstack reichen sicher aus.
Der user bemerkt das sowieso nciht.Gruß
Klaus
-
April 11, 2019 um 22:29 Uhr #14026
P.S.
Um unter Windows das selbe “Benutzererlebnis” wie unter Android zu haben,
lass die Zeile:
…
close stack “main”
…
einfach weg. 🙂 -
April 11, 2019 um 23:32 Uhr #14027
Hallo Klaus,
herzlichen Dank für die prompte Begrüßung und die schnelle Antwort.
Du meinst sicher “on mouseup”, oder?
Absolut… Danke dir 🙂
Ich bin halt neu, aber ich lerne schnell.
So, die Navigation funzt jetzt und ich habe gelernt den Projektmanager zu verstehen.
Vielen Dank und vermutlich bis morgen.
Grüße Tobias
-
April 12, 2019 um 09:46 Uhr #14033
Guten Morgen Zusammen,
und wieder hänge ich aufgrund der fehlenden Erfahrung mit LC.
Ich möchte jetzt bei gedrücktem BTN, dass der Inhalt eines Verzeichnisses (In diesem Fall 10 Bilder) in einer Tabelle oder einem Grid angezeigt wird.
Ich habe zu diesem Thema ein Bsp von Klaus gefunden, leider komme ich hier nicht wirklich weiter.
Ich kann mir jetzt schon mal das Verzeichnis auswählen welches ich auslesen möchte.
Mit put Folder zeigt er mir auch den Pfad via Message Box an und mit put File listet er die Bilder auf.on mouseUp open card "galerie" set the defaultfolder to "C:/Users/JessiLi/Desktop/Kinder/Bilder/groß" #put defaultfolder put the Files end mouseUp
Wie geht man nun am besten vor wenn man alle Bilder formatiert in einem grid anzeigen lassen möchte?
Außerdem habe ich versucht mit einer der IF von Klaus beide Pfade abzufangen, funktioniert bei mir leider nur mit dem Windows Pfad, im Livetest mit Android 8.1 bleibt der Pfad leer.
if the environment = "mobile" then (Das scheint nicht zu funktionieren) mobilePickPhoto "library" else ## User darf ein JPG oder PNG auswählen: answer file "Bitte ein Bild auswählen:" with type "Jpeg,PNG|jpg,png|" put it into tFile
Bräuchte da mal noch nen Denkanstoß, bitte bitte…
Gruß Tobias
-
April 12, 2019 um 10:23 Uhr #14034
Moin Tobias,
keine Bange, das wird schon! 🙂
LC ist sehr sehr mächtig, kommt allerdings mit einer entprechenden Lernkurve daher.Hier ein paar Tips:
on mouseUp ## open card "galerie" ## Offizielle Syntax für Cards***: go cd "galerie" ## set the defaultfolder to "C:/Users/JessiLi/Desktop/Kinder/Bilder/groß" ## put defaultfolder ## seit Version 8 gibt es eine neue Syntax, eine Funktion, ## so daß man sich nicht mehr THE DEFAULTFOLDER setzen muss: put files("C:/Users/JessiLi/Desktop/Kinder/Bilder/groß") ## put the Files end mouseUp
***Ich mag etwas penibel erscheinen, wenn ich immer auf die “offizielle” Syntax poche, aber ich habe festgestellt, daß LC mit jeder Version auch pingeliger wird, was “saloppe” Syntax angeht. Also warum das Schicksal herausfordern? Ist jedenfalls meine Devise 🙂
Hier bist Du auf dem richtigen Weg, aber es fehlt noch was:
... ## EINE Zeile! if the environment = "mobile" then ## Du solltest unbedingt noch weitere Parameter angeben, nämlich wie groß ## dieses Bild maximal auf der Karte erscheinen soll. ## Ohne das verdeckt das Bild den ganzen Stack und jeder wundert sich :-) mobilePickPhoto "library",300,300 ## Nun wird es maximal 300 Pixel breit oder hoch, ## wobei das Seitenverhältnis bebehalten wird ## Wenn der User ein bild gewählt hat, erstellt LC ein KOPIE ## dieses Bildes als neues IMAGE Objekt auf der Karte! ## Du kannst darauf zugreifen mit -> last image ## Beispiel: set the name of last image to "das userbild" else ## User darf ein JPG oder PNG auswählen: answer file "Bitte ein Bild auswählen:" with type "Jpeg,PNG|jpg,png|" put it into tFile ## Auf dem Desktop bekommst Du so erst einmal nur den Dateinamen. ...
Falls Du des Englischen halbwegs mächtig bist, empfehle ich Dir diese Stacks,
um die Basics von LC zu verstehen:
http://www.hyperactivesw.com/revscriptconf/scriptingconferences.html
Die sind schon etwas älter, aber immer noch up-to-date.
Nur Widgets wirst Du darin daher nicht finden.Gruß
Klaus
-
April 12, 2019 um 10:53 Uhr #14035
Hinweis:
Es ist eine gute Idee, für eine neue Frage einen neuen Thread zu eröffnen.
Ansonten endet das in einem Thread mit > 50 Postings (hatten wir hier auch schon),
den niemand mehr durchliest und das ist wenig hilfreich für andere User mit
ähnlichen Problemen. -
April 12, 2019 um 11:26 Uhr #14036
Hallo Klaus,
du scheinst ja immer online zu sein. 🙂
Vielen Dank für deine Mühe vorweg.
Falls Du des Englischen halbwegs mächtig bist, empfehle ich Dir diese Stacks,
um die Basics von LC zu verstehen:Berlitz B2 ist schon ne Weile her, aber ich schau es mir gerne an.
Ich versuche mal mit deinen Tipps weiter zukommen. Ich habe halt leider aktuell nicht die Zeit eine langsame Lernkurve zu durchfahren, daher ja auch die Einfachheit der App.
Was die Thread-Erstellung angeht, gebe ich mir zukünftig Mühe.
Merci
Tobias
-
April 12, 2019 um 11:41 Uhr #14037
Hi Tobias,
tja, ich bin seit langer Zeit arbeitslos und habe daher mehr Zeit als Geld.
Also immer schön fragen, ich habe eine Menge Antworten! 🙂Auf meiner Website kannst Du gucken, was ich schon alles mit LC und seinen Vorfahren (MetaCard, Runtime Revolution, Revolution) programmiert habe: https://major-k.de
Den oberen Link klicken, der untere führt zu meiner Musikersite.Gruß
Klaus
-
April 12, 2019 um 11:58 Uhr #14038
Dear Klaus, 😉
ich bin auch arbeitslos und selbstständiger Fotograf im Nebenberuf, klasse das du so ehrlich bist.
Aktuell möchte ich einfach nur eine kleine offline App bauen, wo die Kinder sozusagen die besten Bilder für ein Kita Portfolio aussuchen können. Da ist nichts mit Bezahlerei oder E-Mail oder so. Einfach nur ne offline Gallerie im Kiosk Mode aufm Tablet. Ergebnis ist dann eben ein txt file (Kind mag das, kind2 mag das etc…)
Und ich habe eine Menge Fragen.
Aktuell funktioniert
mobilePickPhoto "library",300,300
überhaupt nicht und ich kann mir nicht erklären woran das liegt…
Auf dem Desk klappt das mit der Auswahl wunderbar, nur im Livetest geht dieser Befehl nicht. Andere Kommandos funktionieren. Ich bekomme aber partout keine Bilder aus der Handygalerie geladen.
Uff…
Grüße Tobias
-
April 12, 2019 um 12:18 Uhr #14039
Oh, pardon, mein Fehler, der Parameter für die maximale Breite/Höhe funktioniert nur unter iOS!
Ich besitze selber weder Handy, Tablet oder ähnliche Devices, noch entwickle ich für die mobile Platform. Daher kann ich sowas alles nur theoretisch beantworten und nicht selber testen.
-
April 12, 2019 um 12:30 Uhr #14040
Kein Problem,
wäre ich selber erst in 12 1/2 Wochen drauf gekommen.
Ist die Angabe des Seitenverhältnisses, bei “mobilePickPhoto” zwingend nötig oder kann ich sie einfach weglassen?
Und wie kann ich alle Bilder der Galerie in ein grid laden?
Fragen über Fragen…
Wenn ich nerve, einfach sagen, dann müssen wir uns anders einigen 😀
Grüße Tobias
-
April 12, 2019 um 12:41 Uhr #14041
Zur Not IMMER im Dictionary nachschlagen, daher beziehe ich auch meine Informationen.
Was heisst “zur Not”? Bitte IMMER dort nachlesen für weitere Infos. 😀LC sorgt beim “Import” über mobilepickphoto selber für die Einhaltung des korrekten Seitenverhältnisses.
Datagrid
Tja, das ist leider das komplexeste Objekt in LC “wo gibt”! :-/
Ich würde ein paar Tage brauchen, um Dir das hier nur grob zu erklären, am besten, Du lädst Dir die Datagrid Docs als PF hier herunter: http://lessons.livecode.com/spaces/lessons/manuals/datagrid
Linke Seite unter “Topics” “Api and Properties” in 5 Punkt Schrift -> Download manual PDF.
Dann ungefähr 10 mal durchlesen und dann noch ein paar Mal. Dann die Beispiele darin nachbauen.Falls es Dich tröstet, ich muss da auch jedes Mal nachlesen, wenn ich wieder mit Datagrids arbeite.
-
April 12, 2019 um 13:01 Uhr #14042
Huhu Klaus,
evtl schieße ich auch ein wenig über das Ziel hinaus. Im Grunde brauche ich die Bilder ja gar nicht in ein Grid, Tabelle o.ä. laden.
Ich nutze ja mit dem Befehl schon den native photo picker von Android, sofern er funktioniert.
Aber wie bereits gesagt, der Befehl läuft bei mir ins Leere. Die apk hat die nötigen Rechte auf den Speicher und auch die Version 8.1 ist korrekt. Ausserdem sind SDK und Java ordentlich eingerichtet.
Wie es aussieht kann ich atm mit dem Befehl unter Android 8.1 nichts reißen.
Schade, ich recherchiere mal weiter.
Lieben Dank
Tobias
-
April 12, 2019 um 13:06 Uhr #14043
Ich hatte die Erklärung oben schon geliefert, aber offenbar nicht deutlich genug:
... ## Das hier: mobilePickPhoto "library",300,300 ...
funktioniert NUR auf einem iPhone oder iPad!
Für Android Devices musst Du auf die Parameter verzichten, damit der Befehl funktioniert:
... mobilePickPhoto "library" ...
-
April 12, 2019 um 13:12 Uhr #14044
Jupp,
habe ich. Funktionierte bis eben dennoch nicht.
Ich habe jetzt mal einen neuen Stack gemacht mit Oreo 8.0 und schwupp jetzt geht es.
Danke dir.
-
April 12, 2019 um 13:19 Uhr #14045
So, um das nochmal aufzuklären, es lag doch an den gesetzten Berechtigungen in den “Standalone Applikation Settings” und nicht an der Android Version.
Ich habe jetzt mal alle radio buttons sowie haken bei App Berechtigungen gesetzt und nun funktioniert es auch unter Android 8.1.
-
April 12, 2019 um 13:28 Uhr #14046
SAUBER! 🙂
-
April 12, 2019 um 13:33 Uhr #14047
Jo, vielen Dank nochmal.
Zum nächsten Punkt mach ich dann einen neuen Thread auf.
Grüßle Tobias
-
April 12, 2019 um 13:50 Uhr #14048
Wie sagt der Ami so schön: You are welcome! 🙂
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.