Android ウェブサイトのメモ帳チュートリアルに短い質問があります。データベース全体を削除する簡単な関数をチュートリアル コードに記述しました。次のようになります。
DataHelper.java
public void deleteDatabase() {
this.mDb.delete(DATABASE_NAME, null, null);
}
Notepadv1.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, DELETE_ID, 0, "Delete whole Database");
return result;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
mDbHelper.deleteDatabase();
return true;
}
return super.onOptionsItemSelected(item);
}
しかし、アプリを実行してデータベースを削除しようとすると、LogCat で次のエラーが発生します。
sqlite が返されました: エラー コード = 1、msg= そのようなテーブルはありません: データ
この問題を解決する方法を教えてください。関数 deleteDatabase がデータベースに到達できないようです。
どうもありがとうございました。
フェリックス
投稿ありがとうございます。今私はコードを更新しました:
DataHelper.java
public boolean deleteDatabase(Context context) {
return context.deleteDatabase(DATABASE_NAME);
}
Notepadv1.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, DELETE_ID, 0, "Delete whole Database");
return result;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
mDbHelper.deleteDatabase(this);
return true;
}
return super.onOptionsItemSelected(item);
}
しかし、データベースが削除されたアプリを再起動する必要があります。アプリの実行中は作業していません。