Moin zusammen!
Ich stehe gerade auf dem Schlauch und bräuchte eure Meinung dazu:
1) Ich habe eine Activity die ein ListView hat
Die Activity zählt Autohersteller auf
Über die selbe Activity können Autohersteller beliebig hinzugefügt werden
2) Klicke ich auf einen Autohersteller, so öffnet sich eine neue Activity mit einer weiteren ListView
Diese ListView zählt alle Modelle/Fahrzeuge auf
Auch Modelle/Fahrzeuge kann ich in der Activity hinzufügen
3) Klicke ich auf ein Modell/Fahrzeuge so öffnet sich wieder eine Activity mit einer ListView
Diese ListView wird alle möglichen Daten zum Fahrzeug fassen
Mir ist jetzt speziell wichtig, dass ich die Daten aus dem 3) Punkt importieren und exportieren kann.
Also Person XYZ sollte auf seiner App dann auch die Daten importieren können, wenn er den Hersteller und das Modell/Fahrzeug hinzugefügt hat.
Den 1) Punkt hatte ich jetzt mit einer ORMLite Datenbank umgesetzt und habe die Datenbank einfach "Autohersteller.db" genannt.
Also ich den 2) Punkt umsetzen wollte dachte ich mir:
Dafür lege ich auch eine ORMLite Datenbank an.
Der Name der Datenbank sollte sich aus dem Namen des Hersteller und dem dann hinzugefügten Fahrzeug zusammensetzen.
Über den intent-Befehlt wollte ich dann einfach den Hersteller, den ich in der ListView angeklickt habe, als String an die neue Activity weitergeben.
Das Problem ist, wenn der Befehl:
OpenHelperManager.getHelper(this, DatabaseHelper.class);
Ausgeführt wird kann ich ihm den String nicht übergeben und der DatabaseHelper.class fehlt dann der Name des Herstellers.
----> Wie kann man also Datenbanken mit dynamischen Namen erstellen?
Ich hatte dann auch eine 2te DatabaseHelper.class angelegt (DatabaseHelper2.class), weil in der DatabaseHelper.class der Datenbankname ein statischer war ("Autohersteller.db")
und die nächste Datenbank einen "dynamischen" Namen hat, der sich aus dem ausgewählten Hersteller und aus dem Modell/Fahrzeug zusammensetzt.
So sind ja diverse Möglichkeiten vorhanden.
Ich finde das aber mit mehreren DatabaseHelper-Klassen nicht sehr elegant. Allerdings gibt es in der Klasse auch eine Methode:
public Dao<Hersteller, Integer> getHerstellerDao()...
Beim Modell/Fahrzeug bräuchte ich ja auch so eine Methode.
---> Heißt es also, dass ich so eine DatabaseHelper-Klasse immer nur für eine einzige Klasse auslegen kann?
Hättet ihr da eventuell einen besseren und eleganteren Weg?