私はアンドロイドの開発には新しく、sqliteを使用していくつかのデータを保持する簡単なアンドロイドアプリケーションを作っています。SqliteOpenHelper onCreate()メソッドの変更が無視されています
私は物事のデータベース側を処理するSqliteOpenHelperを持っています。私は、データベース私は別のクラス
cardDBHandler = new CardDBHandler(this, null, null, 1);
私が変更したので
@Override
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + TABLE_CARDS + "(" +
CARD_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
DECK_ID + " INTEGER, FOREIGN KEY (" + DECK_ID +")
REFERENCES DATABASE_NAME(COLUMN_ID), " +
CARD_FRONT + " TEXT, " +
CARD_BACK + " TEXT " +
");";
db.execSQL(query);
Log.d(TAG, "Created card database");
}
のonCreate方法でそれをインスタンス
クラスコンストラクタ
public CardDBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, CARD_DATABASE_NAME, factory, CARD_DATABASE_VERSION);
}
を開始するのonCreateメソッドを持っていますこのメソッドは、私のアプリはいくつかの例外につながる変更を登録していません。
私はアクティビティを追加するのと同じ方法でこのクラスをマニフェストに追加する予定ですか? ありがとうございます。
は、あなたのSQLiteOpenHelper実装から、このコードですか?インスタンス化するところはどこですか? – Egor
あなたは 'SQLiteOpenHelper'を使用していますか?そうでない場合は、このメソッドを自分で呼び出す必要があります(例えば、あなたのアクティビティ 'onCreate'から)、Androidはあなたのためにそれをしません。 – JonasCz
@JonasCzはい私はSQLiteOpenHelperを使用しています。私は、アクティビティの仕組みと同じようにクラスをインスタンス化するたびにメソッドが自動的に呼び出されると想定しました。 – tinOfBeans