Datenfluss: Dialog -> Datenbank

  • 4 Antworten
  • Letztes Antwortdatum
B

binneuhier

Fortgeschrittenes Mitglied
10
Hi,

ich habe einen eigenen Adapter, welcher Daten aus einer Datenbank ausließt und in eine ListView packt.

Ich nutze dazu eine Helferklasse. Der Adapter ansich hat also keinen Datenbank zugriff, er nutzt jedoch die Helferklassen:
z.b.:
Code:
db.select();

Dazu habe ich eine Activity, welche eine Listview hat (eben an diese Listview ist der Adapter gesetzt)

Über die Activity kann ich neue Elemente der Datenbank hinzufügen (über einen Dialog).

Man klickt also in der Activity auf den Menü-Knopf, wählt "hinzufügen" aus und es geht ein Dialog mit einem Textfeld auf.

Die Frage ist nun, was macht der Dialog mit dem eingegebenen Daten?
letztendlich sollen sie in der Datenbank landen:
Code:
db.insert(input);

- Soll jetzt der DialogOnOkClickListener den Code ausführen?
- Oder soll der Dialog eine Methode in der Activity aufrufen, welche den Code ausführt?
- Oder soll der Dialog eine Methode des Adapters aufrufen, welcher den Code ausführt?

es geht mehr um eine konzeptionelle Frage hier.

Was ist denn in diesem Fall das best practice? ich kann mir nich vorstellen, der der Dialog dafür verantwortlich ist die Daten einzutragen...lieber sollte er eine Methode aufrufen, die das macht aber ist das Sache des Adapters oder der Activity?

(Vorallem da ja irgendwann man ein Observer dazukommt)

kann mir jemand helfen? ;)

gruß
 
Hi,

da mir bisher noch niemand geantworted hat gehe ich davon aus, das niemand verstanden hat was ich eigentlich will...ist auch wirklich blöd geschrieben fällt mir grad auf.

letztentlich kann man meine Frage auf eine konkrete Kleinigkeit reduzieren:

Wo sollte der (custom)Adapter seine Daten herbekommen?
- Soll er selber auf die DB zugreifen und die Daten holen?
- Soll die Activity die Daten "besorgen" und dem Adapter über den Konstruktor übergeben?

gibts dazu eine Best Practice, wie es am saubersten ist?

gruß und danke
 
Hallo,
ein Service sollte die Daten holen und den dem Adapter übergeben.

Gruß
Maddi
 
ich hab es bei mir so gemacht das ich von den dialog aus dann eine methode aufrufe die die Datenbank geschichte regelt.

was bei deinen adapter dann noch zu beachten ist das du wenn du in der methode das db zeugs gemacht hast etc. du dann auf en adapter "notifyDataSetChanged" aufrufst. Am besten ist du schaust dir mal an wie das funktioniert (notifyDataSetChanged)
 
danke für eure tipps ;)

Maddi schrieb:
ein Service sollte die Daten holen und den dem Adapter übergeben.

das beantwortet leider meine Frage nicht.
- der Adapter bekommt eine Serviceinstanz (per Konstruktor) und ruft selber die Daten ab?
- der Adapter erstellt selber eine Serviceinstanz und ruft Daten ab?
- Die Aktivity hohlt Daten per Service und übergibt den Adapter die Daten (per Konstruktur) ?


Madlip schrieb:
ich hab es bei mir so gemacht das ich von den dialog aus dann eine methode aufrufe die die Datenbank geschichte regelt.

Wo genau liegt diese Methode? in der Activity oder im Adapter?

Madlip schrieb:
was bei deinen adapter dann noch zu beachten ist das du wenn du in der methode das db zeugs gemacht hast etc. du dann auf en adapter "notifyDataSetChanged" aufrufst. Am besten ist du schaust dir mal an wie das funktioniert (notifyDataSetChanged)
Das der Adapter irgendwie an die neuen Daten ran muss ist klar ;) das bringt mich wiederum zum Problem was Maddi versucht hat zu beantworten ;)

(Mein Problem ist, das ich im Kopf ein ziemlich festgefahrenens MVC-Konzept habe und ich Service/Activity/Adapter/XML-file irgendwie dort nicht einordnen kann ;) )
 
Zurück
Oben Unten