Android Studio App Quiz Fragen Datenbank LOKAL?
Hallo,
ich möchte mit Android Studio eine Quiz App programmieren.
Ich möchte jetzt die Fragen speichern.
Ich habe schon eine große Liste von Fragen in excel bzw. csv.
In der App sollen jetzt diese LOKAL (keine Firebase) vorhanden sein.
Wenn ich es richtig verstanden habe muss man in der App die Datenbank mit einer Contract und DbHelper Class erstellen?
Die Tutorials die ich gefunden habe füllen dann die Datenbank manuell (Jeden Eintrag in Code einzeln überführen)
Geht das nicht schneller?
Meine Überlegung:
1. Die Datenbank wird beim ersten App Start erstellt.
2. Es wird in der App eine csv Datei geliefert
3. Es wird beim ersten Appstart die csv Datei in die Datenbank eingelesen
Geht das so?
Ist das die sinnvollste Lösung?
Anmerkung: Ich möchte später auch speichern, welche Fragen schon drankamen und wie diese beantwortet wurden.
1 Antwort
Du kannst eine vorgefüllte SQLite-Datenbank als Ressource bzw. Asset mitliefern und beim ersten Launch in das data-Verzeichnis (konkret: /data/data/NAME_OF_YOUR_PACKAGE/databases/) kopieren. Dort muss die Datenbank liegen, um mit der SQLiteDatabase-Klasse eine Verbindung zu ihr öffnen zu können.
Der Kopiervorgang könnte ungefähr so aussehen:
try (
InputStream reader = yourContext.getAssets().open("your database file name"),
OutputStream writer = new FileOutputStream("target file path")
) {
byte[] buffer = new byte[1024];
int length;
while ((length = reader.read(buffer)) > 0) {
writer.write(buffer, 0, length);
}
}
catch (IOException ex) {
// ...
}