我已經創建了一個從SQLiteOpenHelper擴展的DatabaseHandler類。我在另一個項目中使用了相同的類,並且它工作得很好,但是當我將它導入到當前項目的目錄中時,它無法正常工作。它甚至不創建數據庫。以下是創建數據庫和表的方法。無法創建數據庫android
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "mydatabase.db";
// Contacts table name
private static final String TABLE_WORDS = "words";
private static final String TABLE_SETS = "sets";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_WORD = "word";
private static final String KEY_DEFINITION = "definition";
private static final String KEY_WORDS_SET_ID = "wordssetid";
private static final String KEY_SET_NAME = "setname";
private static final String KEY_SET_ID = "setid";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String createWordTable =
"CREATE TABLE IF NOT EXISTS " + TABLE_WORDS+ "("
+ KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_WORD + " TEXT,"
+ KEY_DEFINITION + " TEXT,"
+ KEY_WORDS_SET_ID+" INTEGER) ";
String createSetTable =
"CREATE TABLE "+TABLE_SETS+"("
+KEY_SET_ID+ " INTEGER PRIMARY KEY, "
+KEY_SET_NAME+ " TEXT) ";
db.execSQL(createWordTable);
db.execSQL(createSetTable);
db.close();
}
創建和Activity類
private DatabaseHandler dbHandler;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse_sets);
//...
//...
//...
dbHandler = new DatabaseHandler (this);
}
我做的其他項目同樣的事情,使用對象,但現在它行的事工作。是什麼原因 ?
在logcat中的任何錯誤創建這個方法? –
不,只是它不起作用 – user3199577
您是否使用過dbHandler來運行查詢?數據庫將不會創建,直到你做。在onCreate()和onUpgrade()中設置斷點並進行調試,或者從這些方法中寫入日誌以查看正在運行的代碼。 – NigelK