您好我的Android应用程序有问题。我想为我的应用程序使用sqlite数据库,并且我有一个使用onCreate()
,onPause()
和onResume()
方法的活动。我已经构建了一个类DatenbankManager
,其中创建了一个表ID和名称但是如果我使用模拟器启动我的应用程序,我会收到一条消息,然后我的应用程序关闭。
这里是我的DatenbankManager类:
package de.tarasov.database_example_tarasov;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatenbankManager extends SQLiteOpenHelper {
private static final String DB_Name = "Stundenplanname.db";
private static final int DB_VERSION = 1;
private static final String KLASSEN_CREATE = "CREATE TABLE Stundenplan(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, "+
"name TEXT NOT NULL";
private static final String KLASSEN_DROP = "DROP TABLE IF EXIST Stundenplan";
//Konstruktor
public DatenbankManager(Context context) {
super(context, DB_Name, null, DB_VERSION);
}
//Methode wenn eine Datenbank erstellt werden muss
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(KLASSEN_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(KLASSEN_DROP); // Löscht Tabelle wenn nicht vorhanden
onCreate(db); //Erstellt Tabelle
}
}
这是我的主要活动:
package de.tarasov.database_example_tarasov;
import android.os.Bundle;
import android.widget.Toast;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
public class MainActivity extends Activity {
private SQLiteDatabase mDatenbank;
private DatenbankManager mHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHelper = new DatenbankManager(this);
}
@Override
protected void onPause() {
super.onPause();
mDatenbank.close(); //Schließt Datenbank
Toast.makeText(this,
getResources().getString(R.string.db_close),
Toast.LENGTH_SHORT).show();
}
@Override
protected void onResume() {
super.onResume();
mDatenbank = mHelper.getReadableDatabase(); //Datenbank öffnen
//Gibt Kurztext aus
Toast.makeText(this,
getResources().getString(R.string.db_open),
Toast.LENGTH_SHORT).show();
}
}
这是错误消息:
如果我进行调试,我会看到:
Source not found.
在LogCat中我看到了这个:
我讨厌这个debuger:D
答案 0 :(得分:3)
您在create table语句中忘记了)
:
private static final String KLASSEN_CREATE = "CREATE TABLE Stundenplan(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, "+
"name TEXT NOT NULL);";