German Designer Dateien

Heinz

Active Member
Licensed User
Longtime User
Hallo,
Ich habe eine App mit TabHost erstellt.
Darin sind auch 4 .bal Dateien, die ich mit dem Designer erstellt habe.
Compilieren und installieren läßt sich alles, aber die App schließt sich sofort wieder.
Das Layout (layout.bal) für die Activity scheint eingebunden zu werden. Bei den anderen
3, die zum TabHost gehören, bekomme ich im Protokoll folgendes :
Was muß ich tun, um auch diese mit einzubeziehen ?
Die besagten Dateien sind auch im Files-Ordner drin.
 

Attachments

  • TabHost.zip
    11.5 KB · Views: 226

klaus

Expert
Licensed User
Longtime User
Du musst die Layoutdateien im IDE File Tab hinzufügen.
Eigentlich sollten diese bei Dir schon drin sein.
Ich habe Dein Projekt im B4X IDE geladen, den Designer gestartet um die Layoutdateien anzuschauen und es funktioniert.



Die Layoutdateien sehen aber komisch aus.
Du verwendest die 'standard' Layoutvariante mit Views die sich ausserhalb des Bildschirms befinden.
Auf meinem Smartphone werden die unteren Views in den Tabs nicht angezeigt.
 

Heinz

Active Member
Licensed User
Longtime User
Du verwendest die 'standard' Layoutvariante mit Views die sich ausserhalb des Bildschirms befinden.
Auf meinem Smartphone werden die unteren Views in den Tabs nicht angezeigt.
Ach so, das Design habe ich mit dem Designer, der auch auf dem Phone installiert ist, angepaßt.
Da konnte ich sehr schön sehen, wie es auf meinem Phone aussieht. Die B4xPages will ich im
Moment nicht verwenden, da ich dort noch nicht so richtig durchblicke. Da fehlten mir plötzlich
die Member Listview1.AddLine() usw.
Ansonsten habe ich, wie oben in deinem Bild die Dateien auch so stehen.
Ich ändere mal die Positionen der unteren Views. Vielleicht liegt es daran.
 

DonManfred

Expert
Licensed User
Longtime User
Da fehlten mir plötzlich
die Member Listview1.AddLine() usw.
Wenn Du in einem Layout welches in B4XPages verwendet wird ein ListView einbindest, dann kannst Du auch auf AddSingleItem zugreifen.

Uploade ein Project wo es nicht funktioniert dann können wir uns das angucken. Mit Rumraten wurde bisher selten ein Problem behoben.
 
Last edited:

Heinz

Active Member
Licensed User
Longtime User
Da muß irgendwas bei meinen Projekt-Einstellungen verbogen sein.
Andere Programme laufen ja, sogar das alte TabHost - Beispiel von Erel
ohne B4xPages.
Am besten fange ich mal ganz neu an mit den B4XPages.
PS:
Kann man das andere so machen ?
Ich hatte ein globales Listview as Listview definiert
und dann beim Tab-Wechsel dem Listview das jeweilige
Listview der Tabs (Pages) zugewiesen :
CurrentTab = 0 -> Listview = Listview1
CurrentTab = 1 -> Listview = Listview2
CurrentTab = 2 -> Listview = Listview3

Damit könnte ich versch. SUBs universeller nutzen.
so ähnlich mache ich es auch bei meiner Windows-programmierung.
Da ist das Handle ja nur ein Integer, den Windows bei der Erstellung vergibt.
 

Heinz

Active Member
Licensed User
Longtime User
so, habe jetzt auch den Fehler für die .bal Dateien gefunden :
Ich hatte bei der ersten Projektspeicherung bei Ordner erstellen
ein Häkchen gemacht und b4a.TabHost1 als Ordner angegeben.
Das hatte der Designer oder was auch immer nicht mögen wollen.
Normalerweise erstelle ich immer vorher mit dem Explorer einen
neuen Projekt-Ordner und speichere später alles mit B4A da rein.

Das mit dem einen Button für alle Pages scheint wohl nicht zu
funktionieren. Da muß ich mir was anderes einfallen lassen.
Ich wollte halt vermeiden, daß ich 3 Speichern, Ändern - und
Neu - Buttons habe. Der Gedanke war halt, daß ja immer nur ein
Tab angezeigt werden kann und somit ein Button für alle Pages
gültig ist bzw. reichen würde.
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Du schreibst viel, leider ist es nicht wirklich leicht verständlich.
Der Button Ende, einer für alle Tabs, funktioniert !
Drei genau gleiche *.bal Dateien ist für mich nicht sinnvoll.
Ich hatte Deine Frage im Forum gesehen, hatte aber andere Prioritäten und daher nicht geantwortet.
Die Frage war auch zu generell, ich bin überzeugt dass es eine einfacher Möglichkeit gibt.
Ich habe nicht verstanden was Du machen willst.
Drei verschieden Eingabemöglichkeiten für welche Art von Daten.
Um hier konkret antworten zu können müsstest Du viel genauer erklären was genau Du machen willst.
 

Heinz

Active Member
Licensed User
Longtime User
Um eine bessere Übersicht zu haben, will ich meine Einkaufsliste in Unterbereiche unterteilen.
Deswegen war der TabHost meine erste Wahl.
Bei Lebensmittel kommen halt z.B. Milch, Eier, Käse usw. ins Listview rein, bei Drogerie halt Seife,
Rasierwasser usw. und bei Sonstige was es sonst noch so alles gibt und nicht in die beiden ersten
Bereiche paßt. Das könnten dann auch Sachen z.B. aus dem Baumarkt sein.
Man könnte die Anzahl Tabs sogar noch erhöhen, wenn man öfter z.B. Großeinkauf
beim Bäcker hat. Aber es sollte doch recht universell sein. Da reichen die 3 Bereiche für den täglichen
oder wöchentlichen Einkauf.

Diese Bereiche sollen dann auch gesondert in csv-Dateien gespeichert und beim AppStart wieder
entsprechend in die entsprechenden Listviews eingelesen werden.

So habe ich beim Drauftippen des entsprechenden Tabs immer die Übersicht. Gehe ich z.B bei
Rewe oder Edeka ist der Bereich Lebensmittel relevant und z.B. im DM Markt der Bereich (Tab)
Drogerie. So sehe ich direkt, was ich in den einzelnen Märkten einzukaufen habe und brauche
keine ellenlange Liste anschauen, in der alles steht, um das passende raus zu picken bzw. ab-
zuhaken. Ich habe es so gemacht, daß durch einen LongClick im Listview der entsprechende
Eintrag gelöscht wird. Damit ist er abgehakt. Die App ist auch dafür gedacht, wenn einem
ein Artikel spontan einfällt, diesen gleich auch einzugeben. Somit können unerledigte Artikel
(Ware nicht da oder einfach vergessen, in den Korb zu legen o.ä.) in der Liste bis zum nächsten
Einkauf stehen bleiben.

Die 3 Layouts haben deswegen das gleiche Aussehen, weil ich halt in jedem Tab das gleiche
machen will : neuen Eintrag ins entsprechende Listview, Löschen eines Eintrags oder ganze Liste,
Ändern eines Eintrages und Speichern der einzelnen Listen. Da könnte später noch eine Abfrage
vor Activity.Finisch reinkommen, die dann alle Listviews in die entsprechenden Dateien speichert,
falls es in einem Tab vergessen worden sollte.

Vielleicht hast du ja noch eine bessere Idee.
PS:
Also, ich fände sowas übersichtlich. Ich habe auch im Play Store nichts derartiges finden können.
Es gibt zwar jede Menge Apps dafür, aber fast alle geben dann die Einträge schon vor oder
man kann sie nicht löschen oder sonst was fehlt.
 

Heinz

Active Member
Licensed User
Longtime User
Habe das Projekt mal soweit fertig gemacht, damit man sieht wie ich das wollte.
Einzig die Ausrichtung auf den Pages gefällt mir noch nicht so. Da muß ich
noch Hand anlegen.
 

Attachments

  • EKListen.zip
    12.1 KB · Views: 176

klaus

Expert
Licensed User
Longtime User
Beiliegend eine andere Lösung EKListen1.
Alle Views in die Layoutdatei ausser den drei ListViews, diese sind jede in einer separaten Layoutdatei.
Du solltest sinnvolle Namen für die Views benutzen.
Du solltest Alles was Layouts betrifft im Designer schreiben und nicht im Code, und so viel wie möglich Anchors benutzen und die letzten Kleinigkeiten im Designer Script.

Eine weitere Lösung, EKListen2, ist für die ListViews (diese muss man aber im Code hizufügen), Namen, Farben, usw Arrays zu erstellen, da könnte man einige Routinen vereinfachen und die wären für schon mehr ListViews vorgesehen.
 

Attachments

  • EKListen1.zip
    10 KB · Views: 227
  • EKListen2.zip
    7.8 KB · Views: 217
Cookies are required to use this site. You must accept them to continue using the site. Learn more…