回答編集履歴
1
ソースコードの修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
あなたの**SQLiteDatabase**では,Activityの内部クラスとして**MySQLiteOpenHelper**を利用していますね.この書き方は,**SQLiteDatabase**からアクセスすることのみを想定しているように見えます.
|
2
2
|
|
3
|
-
|
3
|
+
他の方も書かれている通り,Helperクラスを作成.別なクラス(Activity内など)から利用しましょう.
|
4
4
|
|
5
5
|
実用上は↓のような形にすることが多いです.
|
6
6
|
|
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
/* カラム名には "id" ではなく "_id" を使いましょう */
|
38
38
|
|
39
|
-
private static final String CREATE_TABLE = "create table " + TABLE_NAME + "
|
39
|
+
private static final String CREATE_TABLE = "create table " + TABLE_NAME + "(" +
|
40
40
|
|
41
41
|
COLUMN_ID + " integer primary key autoincrement," +
|
42
42
|
|
@@ -114,4 +114,20 @@
|
|
114
114
|
|
115
115
|
sqLiteDatabase.insert(MySQLiteOpenHelper.TABLE_NAME, null, values);
|
116
116
|
|
117
|
+
|
118
|
+
|
119
|
+
/* 使い終わったらクローズしましょう */
|
120
|
+
|
121
|
+
sqLiteDatabase.close();
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
/* もちろんデータを書き込む際,毎回開いて閉じてしているのはリソースの面から合理的とはいえません */
|
126
|
+
|
127
|
+
/* Activity の onCreate 内などで一度だけ getWritableDatabase() を行い */
|
128
|
+
|
129
|
+
/* それを使い回しましょう */
|
130
|
+
|
131
|
+
/* onDestroy 内で閉じる処理をかけば十分です */
|
132
|
+
|
117
133
|
```
|