restartButton を押した後、データベースをデフォルトの状態にリセットしようとしています。私の問題は、restartButton を押した後、新しく追加されたデータを取得できないようです。ここで何が間違っていますか?
restartButton コード:
private void easySQLRestart() {
sql = new SQLDatabaseLevelOne(MainActivity.this);
sql.open();
sql.restart();
sql.close();
}
再起動のコード:
public void restart() {
sqlDatabase = dbHelper.getWritableDatabase();
sqlDatabase.delete(DATABASE_TABLE, null, null);
}
これは、リセット後に新しいデータを追加する部分です。
public void updateScore(int score) {
String strScore;
if (score == 0) {
score = 1;
} else if (score > 0) {
strScore = getScore();
if (strScore.equals("")) {
score = 1;
} else {
strScore = getScore();
int value = Integer.parseInt(strScore);
score += value;
}
}
ContentValues dbContentValues = new ContentValues();
dbContentValues.put(KEY_SCORE, score);
sqlDatabase.update(DATABASE_TABLE, dbContentValues, KEY_ID + "=" + 1,
null);
}
これは、データを取得するためのコードです。
public String getScore() {
String[] data = new String[] { KEY_ID, KEY_SCORE };
Cursor dbCursor = sqlDatabase.query(DATABASE_TABLE, data, null, null,
null, null, null);
String dbResult = "";
int dbQuestionStatus = dbCursor.getColumnIndex(KEY_SCORE);
for (dbCursor.moveToFirst(); !dbCursor.isAfterLast(); dbCursor
.moveToNext()) {
dbResult += dbCursor.getString(dbQuestionStatus);
}
return dbResult;
}
こんな感じでデータ追加。例外をスローしません:
sql = new SQLDatabaseLevelOne(
EasyRoundActivity.this);
sql.open();
try {
sql.updateScore(0);
}catch(Exception e) {
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast.makeText(context, "ERROR", duration).show();
}