2012-03-26 5 views
0

Ich versuche herauszufinden, welche Reihenfolge ich alles tun muss, um mein Programm gut fließen zu lassen und nicht abstürzen. Ich will die Spieler meines Spiels ein Team von drei Personen mit Statistiken jeweils als eigene Klasse haben wie Angriff, Gesundheit usw.Android: SQLite DB versucht, Werte nicht jedes Mal zu überschreiben, wenn ich starte

  1. Wenn das Spiel zum ersten Mal installiert und ausgeführt wird, ich möchte eine SQLite haben db gemacht und gefüllt mit den 3 Starter-Zeichen.
  2. Wenn sie zu einem anderen Zeitpunkt gestartet werden, möchte ich, dass die drei gespeicherten Zeichen in der DB 3 lokalen Zeichenobjekten zugewiesen werden.

Ich habe eine SQLite-Adapter-Klasse die Db Handhabung, aber ich bin nicht sicher, wie alles bestellen, so dass ich zuerst überprüfen, um zu sehen, ob es eine Db in den Programmen Db Weg ist und es öffnen, wenn es. Ansonsten erstellen Sie einfach eine neue und füllen Sie sie mit den Anfangsbuchstaben.

ich derzeit haben:

DbAdapter = new PlayerDbAdapter(this); 
    DbAdapter.open(); 
    DbAdapter.setInitialPlayers(); // inserts my initial player object info into the Db 

die

public PlayerDbAdapter open() throws SQLException { 
     dbHelper = new SummonSQLiteHelper(context); 
     String s = DbPath + DB_NAME; 
     database = SQLiteDatabase.openOrCreateDatabase(s, null); 
     return this; 
} 

ruft Und jetzt bin ich ein wenig verloren, was ich sicherstellen müssen, dass ich nicht überschreiben jede gespeicherte Information in das Db mit den Anfangswerten jedes Mal, wenn ich das Programm starte. Irgendwelche Vorschläge?

Antwort

0

Versuchen Sie, wie diese

public PlayerDbAdapter open() throws SQLException { 
    dbHelper = new SummonSQLiteHelper(context); 
    String s = DbPath + DB_NAME; 
    bool b=checkDataBase(s); 
    if(b==false) 
    { 
     database = SQLiteDatabase.openOrCreateDatabase(s, null); 
     setInitialPlayers(); <---- set initial values here 
    } 
    else 
    { 
    database = SQLiteDatabase.openOrCreateDatabase(s, null); 

    } 
    return this; 
    } 
    private boolean checkDataBase(String str) { 
    SQLiteDatabase checkDB = null; 
try { 
    checkDB = SQLiteDatabase.openDatabase(str, null, 
      SQLiteDatabase.OPEN_READONLY); 
    checkDB.close(); 
} catch (SQLiteException e) { 
    // database doesn't exist yet. 
} 
return checkDB != null ? true : false; 
} 
Verwandte Themen