Daten erfassen mit Fragmenten und Validation

F

Fritzmaier

Neues Mitglied
0
Hallo, als Anfänger bei Android tue ich mich ganz schön schwer (komme aus der Delphi-Ecke). Ich will eine App für folgenden Zweck erstellen:

Bereich Schule: Die Schüler sollen ihre Kurswahl für die Oberstufe vornehmen.
1) Wahl zweier Leistungskurse
2) Wahl einiger Grundkurse

Das ganze auf mehrere Fragmente verteilt.
Fragment A: Name, Vorname, Klasse

Fragment B: beide LKs

Fragment C: Wahl der Fremdsprachen

Fragment D: Entscheidung zwischen Religion ev, Religion kath oder Ethik
(per Radiogroup)

Fragment E: Wahl der Naturwissenschaften

... usw

dabei soll die App prüfen (wenn der User zum nächsten Fragment swipen will), ob die Eingaben soweit korrekt ist bzw dann nur entsprechendes auf dem Fragment anbieten.

Also wenn man z. B. als LK"PhysiK" gewählt hat, soll später bei Fragment E Physik nicht mehr wählbar sein als Grundkurs.

Ich habe es bisher soweit geschafft, daß ich eine Mainactivity, 3 Fragmente und einen Fragmentpageadapter habe und so zwischen den Fragmenten swipen kann.

Allerding bereitet mir die Validation der Eingaben Probleme , obwohl ich im Internet fleißig gesucht habe.

Wie lasse ich ein swipe zur nächsten Seite nur zu, wenn die Eingabe korrekt ist ? Ich habe zwar einen customviewpager, wo ich pagingenabled auf true/false setzen kann. Aber wo mache ich die Prüfung der Daten ?

Die Daten müssen zum Schluss dann noch zur einer Datenbank übers Internet hochgeladen werden. Aber das ist noch weit weg...

Danke für Tipps oder Verweise auf Tipps/Codeschnipsel

Fritz
 
ich antworte mir mal selbst bzw schildere meinen Zwischenstand:

ich bin auf wizardroid https://github.com/Nimrodda/WizarDroid/wiki gestoßen und konnte damit einen mehrseitigen wizard erstellen, der im Prinzip das leistet,was ich will - mit leichten Problemen. Laut dem wiki soll mit der @ContextVariable man "globale" Daten von einem Fragment zum nächsten weitergeben können. Das klappt nicht, erst im übernächsten Fragment. Liegt es daran, daß ein FragmentStatePagerAdapter verwendet wird ?

zum Schluß lade ich die Daten übers Internet zu einer mysql-Datenbank, das klappt. Damit nicht nochmals hochgeladen werden kann, habe ich danach den Button dafür disabled. Wenn man nun "next" klicken würde,w äre der Wizard beendet (so wäre es erwünscht)
Leider kann man nun mehrfach (mindestens 2x) auf "back" klicken und dann wieder (mehrfach) "next"; dann ist der button "Save Data" wieder aktiv.
wie kann ich entweder den "save data" Button dauerhaft deaktivieren oder den wizard beenden ?

Danke für einen Tipp
 
Habe vor längerer Zeit mal Pager-Zeugs verwendet.
Ich erinnere mich, dass die OnCreate-Methode immer nur beim
übernächsten oder übervorhergehenden Fragment aufgerufen wurde.
Evtl. füllst Du die globalen Daten in dieser Methode, was erklärt warum
das Verhalten so ist, wie Du es beschreibst.

Den Eintrag in die Datenbank kannst Du anders absichern.
Das Script gibt die ID (auto-increment) des neuen Datensatzes
zurück und die App. Diese ID wird beim nächsten Mal mit übertragen,
so dass ein Update ausgeführt wird.

Bei der ersten Übertragung wird als ID (0) übergeben.
Suche in der MySQL Referenz nach INSERT ... UPDATE ON DUPLICATE KEY
 
Danke !

Habe es vorläufig mit dem wizardroid aufgegeben, da es nicht möglich ist, die Daten über die 5 Pages (Fragmente) hinweg konsistent zu halten, obwohl wizardroid das angeblich leistet mit der @ContexVariable. Ich könnte höchstens versuchen, mit eigenen "globalen" Variablen die Daten jedes Fragments zu sichern. Dein Vorschlag bzgl. des Speicherns ist machbar.

Gruss Fritz
 
sende die daten per bundle!!! und gib dieses an ide fragmente weiter
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
136
swa00
swa00
A
Antworten
10
Aufrufe
1.928
swa00
swa00
B
Antworten
4
Aufrufe
496
bb321
B
Zurück
Oben Unten