私はアンドロイドアプリを書いています。SQLite データベースを作成し、作成時にデータを入力する必要があります。だから私はそれを onCreate() 関数に取り込もうとしています。ただし、データベースにデータを挿入するには、db.getWritableDatabase() を使用する必要があります。ただし、データベースの作成中にデータベースを呼び出すことを意味するため、データベースの onCreate() 関数内でこれを行うことはできません (エラーがスローされます)。では、データベースの onCreate() 関数内で getWritableDatabase() を使用するにはどうすればよいでしょうか?
質問する
2447 次
1 に答える
5
ただし、データベースにデータを挿入するには、db.getWritableDatabase() を使用する必要があります。
いいえ、SQLiteDatabase
インスタンスが必要です。onCreate()
あなたのメソッドに1つ提供されていますSQLiteOpenHelper
-- それを使用してください。
たとえば、このサンプル プロジェクトには、onCreate()
次のような があります。
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.beginTransaction();
db.execSQL("CREATE TABLE constants (_id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, value REAL);");
ContentValues cv=new ContentValues();
cv.put(TITLE, "Gravity, Death Star I");
cv.put(VALUE, SensorManager.GRAVITY_DEATH_STAR_I);
db.insert("constants", TITLE, cv);
cv.put(TITLE, "Gravity, Earth");
cv.put(VALUE, SensorManager.GRAVITY_EARTH);
db.insert("constants", TITLE, cv);
// several more inserts here
cv.put(TITLE, "Gravity, Venus");
cv.put(VALUE, SensorManager.GRAVITY_VENUS);
db.insert("constants", TITLE, cv);
db.setTransactionSuccessful();
}
finally {
db.endTransaction();
}
}
于 2013-03-27T15:58:06.007 に答える