German (Panel) per Code erstellen

mw71

Active Member
Licensed User
Longtime User
Hallo,

ich möchte ein Panel (andere Lösungen sind aber auch i.o.) erstellen. Da sich dabei aber sehr viel wiederholt würde ich dies gerne durch den Code erledigen lassen.

Im Habe mal angefangen das Muster im Designer zu gestalten und habe das Bild davon angehangen.

Im Prinzip sieht das so aus das ich oben eine Titel leiste habe, darunter 3 Eingabefelder mit den dazugehörigen Labels (bei einem sind es nur 2 Eingabefelder, bei dreien 4 Felder). Im Beispiel sieht man das 2x, insgesamt brauche ich das 14x.
Auf Grund der menge muss das ganze definitiv Scrollbar werden.

Vor dem Start muss ich die Felder mit (default) Werten füllen, am Ende (wenn der Nutzer o.k. klickt) muss ich die eingegeben Werte auswerten.

Bin für jeden Tipp dankbar
 

Attachments

  • Download.jpg
    17.1 KB · Views: 363

JOTHA

Well-Known Member
Licensed User
Longtime User
Hallo mw71,
... sehr viel wiederholt würde ich dies gerne durch den Code erledigen lassen
nur mal eine Frage: Warum willst Du das unbedingt mit dem Code erstellen, wo es doch mit dem Visual Designer sehr schnell und sehr einfach geht (einfach copy+paste)?
 

mw71

Active Member
Licensed User
Longtime User
mit Copy+Paste habe ich ja erst mal nur die Elemente erstellt. Diese müssen dann noch entsprechende Namen und/oder Tags bekommen....
Ich denke/hoffe das dies mit Code etwas einfacher/schneller zu erledigen ist.
 

DonManfred

Expert
Licensed User
Longtime User
Ich denke/hoffe das dies mit Code etwas einfacher/schneller zu erledigen ist.
Im Grunde hast du ein Layout welches du 14 mal in einer Activity verwenden willst.
Du brauchst ein CLV. Je "Eintrag" erstellst Du ein Panel und lädst ein Layout mit den gewünschten Objekten in dieses Panel.
Dem Edittext und den Labels oder Buttons gibst du im Code aussagekräftige TAGs (nach dem Laden des layouts) mit denen Du den button usw später wiederfinden kannst.
 

klaus

Expert
Licensed User
Longtime User
So wie iche es verstehe willst Du alle Views in einem Bildschirm anzeigen.
Am einfachsten ist es im Designer zu erstellen, wie es JOTHA schon angedeutet hat.
Du brauchst zwei Layouts, eins mit einer ScrollView und eventuell anderen Views und im zeiten ein Panel auf dem Du alle Views zur Eingabe.
Das Panel kann höher sein als die ScrollView. Du musst aber im Code die Höhe des internen Panels des ScrollView setzten.
Ein Beispiel findest Du hier.
Ich denke/hoffe das dies mit Code etwas einfacher/schneller zu erledigen ist.
Ich bin vom Gegenteil überzeugt.
 

mw71

Active Member
Licensed User
Longtime User
Hallo,

danke für eure Antworten.

Ich habe das jetzt, wie von DonManfred vorgeschlagen, mit CustromScrollView umgesetzt.
Der Vorteil ist das auch das füllen der Daten recht einfach zu realisieren ist. Auch eine Erweiterung/Kürzung ist mit minimalen Änderungen im Code zu machen.

Nachteilig ist das es etwas dauert bis das CSV angezeigt wird. Ich wollte dem Nutzer das gerne anzeigen mit einem ProgressDialog.
Mein Problem dabei ist nur das es beim Debug (F8) angezeigt wird, im Release Mode aber nicht.
(auch Sleep(0) bzw. DoEvents hilft nicht )
 

mw71

Active Member
Licensed User
Longtime User
ähmm, möchte ich doch gerne. Der Nutzer soll eine komplette Liste zum Ausfüllen vorfinden.
Das es etwas Dauert ist nicht das Problem (die Seite wird nur sehr selten benötigt) solange
der Nutzer das angezeigt bekommt. Sonnst denkt er die App ist eingeschlafen.....

Ich überlege gerade ob ich das evtl. in einem Service/Codemodul "Vorladen" kann.
 

mw71

Active Member
Licensed User
Longtime User
Danke für das Angebot, so wie es aussieht hat es sich aber erledigt.

Ich habe erst mal die Größen+Position von Panel (Parrent), CLV und der Buttons eingestellt.
Anschließend habe ich ProgressdialogShow aufgerufen (mit folgendem Sleep(0) )
Dann ist die Schleife gekommen in der ich die einzelnen Panels erstelle und fülle.

Jetzt habe ich am Anfang dieser Schleife noch ein Sleep(0) eingefügt. Das hat geholfen.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…