Laden...

Xamarin Android - SQLiteConnection in einer anderen Activity nutzen

Erstellt von Steven85 vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.694 Views
Steven85 Themenstarter:in
99 Beiträge seit 2011
vor 7 Jahren
Xamarin Android - SQLiteConnection in einer anderen Activity nutzen

Hallo zusammen,

seit kurzem arbeite ich mit Xamarin in Visual Studio an meiner ersten mobilen App.
Ich habe nun folgendes Problem. In meiner Main Activity habe ich eine SQLiteConnection erstellt.


// SQLConnection in MainActivity
string sPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "SavedItems.sqlite");
SQLiteConnection con = new SQLiteConnection(new SQLitePlatformAndroid(), sPath);
SavedItemRepository repository = new SavedItemRepository(con);

Mittels Button wechsel ich in eine neue Activity in der ich die entsprechenden Daten darstelle.


// Wechsel in neue Activity
Intent oIntend = new Intent(this, typeof(SavedItemsViewActivity));
oIntend.PutExtra("lstSavedIems", JsonConvert.SerializeObject(lstSavedIems));
StartActivity(oIntend); 

In dieser neuen Activity kann ich Einträge aus der Liste entfernen, jedoch habe ich keine Ahnung wie ich diese auch aus der Datenbank lösche.
Das repository Objekt serialisiert zu übergeben an oIntend funktioniert nicht. Wie komme ich nun in der neuen Activity an die SQLLiteConnection, bzw. wie teile ich der MainActivity mit das die entsprechenden Einträge gelöscht werden sollen.

Danke im Voraus.

4.939 Beiträge seit 2008
vor 7 Jahren

Hallo,

ersteinmal solltest du dein Programm nach der [Artikel] Drei-Schichten-Architektur aufbauen. Die SQLiteConnection gehört in den DAL (und nicht in die UI). Desweiteren sollten DB-Connections nur so kurz wie möglich geöffnet sein, d.h. du schreibst dir im DAL eine Methode welche die Verbindung öffnet, den Datenzugriff macht und danach wieder schließt (am elegantesten mittels einer using-Anweisung).

Und gerade wenn du (irgendwann) Crossplattform entwickeln willst, dann wirst du das zu schätzen wissen (wobei du dann als UI auch gleich Xamarin.Forms verwenden könntest).

Steven85 Themenstarter:in
99 Beiträge seit 2011
vor 7 Jahren

Vielen Dank für die Antwort.
Gibt es irgendwo ein gutes Tutorial in dem das Ganze in einem Beispiel angewandt wird?

286 Beiträge seit 2011
vor 7 Jahren

2+2=5( (für extrem große Werte von 2)