質問編集履歴
1
ItemBSQLiteOpenHelperの動作の有無の確認報告、一部コードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -90,13 +90,13 @@
|
|
90
90
|
|
91
91
|
if (itemSQLiteOpenHelper instanceof ItemASQLiteOpenHelper) {
|
92
92
|
|
93
|
-
itemSQLiteOpenHelper=(ItemASQLiteOpenHelper)itemSQLiteOpenHelper
|
93
|
+
itemSQLiteOpenHelper=(ItemASQLiteOpenHelper)itemSQLiteOpenHelper;
|
94
94
|
|
95
95
|
}
|
96
96
|
|
97
97
|
else if (itemSQLiteOpenHelper instanceof ItemBSQLiteOpenHelper) {
|
98
98
|
|
99
|
-
itemSQLiteOpenHelper=(ItemBSQLiteOpenHelper)itemSQLiteOpenHelper
|
99
|
+
itemSQLiteOpenHelper=(ItemBSQLiteOpenHelper)itemSQLiteOpenHelper;
|
100
100
|
|
101
101
|
} else {
|
102
102
|
|
@@ -126,15 +126,15 @@
|
|
126
126
|
|
127
127
|
finally {
|
128
128
|
|
129
|
-
databaseOpenHelper.close()
|
129
|
+
databaseOpenHelper.close();
|
130
|
-
|
130
|
+
|
131
|
-
cursor.close()
|
131
|
+
cursor.close();
|
132
|
-
|
132
|
+
|
133
|
-
Log.v("MainActivity", "Succeeded in close the database and cursor.")
|
133
|
+
Log.v("MainActivity", "Succeeded in close the database and cursor.");
|
134
134
|
|
135
135
|
}
|
136
136
|
|
137
|
-
return list
|
137
|
+
return list;
|
138
138
|
|
139
139
|
}
|
140
140
|
|
@@ -148,7 +148,7 @@
|
|
148
148
|
|
149
149
|
abstract class ItemSQLiteOpenHelper(context: Context) extends SQLiteOpenHelper {
|
150
150
|
|
151
|
-
abstract
|
151
|
+
abstract String TABLE_NAME;
|
152
152
|
|
153
153
|
|
154
154
|
|
@@ -162,7 +162,7 @@
|
|
162
162
|
|
163
163
|
@Override
|
164
164
|
|
165
|
-
abstract
|
165
|
+
abstract public void onCreate(SQLiteDatabase p0);
|
166
166
|
|
167
167
|
@Override
|
168
168
|
|
@@ -257,3 +257,39 @@
|
|
257
257
|
同一データベースにテーブルを2以上作ってはいけないのかもと思い、adaptListViewの//試したこと1の部分でgenerateDatabasedListの順番をItemAとBを逆にして行った。
|
258
258
|
|
259
259
|
というか、一回でも実行した時点でデータベースとItemAのテーブルはもうマシンの中に作られていて、これ調べてももう遅いのではと思ったので、ITEM_DATABASEのテーブル一覧を取得しようと試みたがそれらしきメソッドが調べても見つからない。
|
260
|
+
|
261
|
+
###9/6 21:00追記
|
262
|
+
|
263
|
+
一部Kotlinからの移植に失敗していたものがあったので修正しました。
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
また、下記のソースコードにあるようにItemA,Bの両方にLogを追加しました。
|
268
|
+
|
269
|
+
アプリを一旦アンインストール、再度実行した所ItemAの方はLogが出ましたが、Bのほうは出ませんでした。
|
270
|
+
|
271
|
+
最初はexecSQLの文法ミスを疑っていましたが、このことからBの方はonCreateが実行されずテーブルが作成されていないようです。
|
272
|
+
|
273
|
+
```Java
|
274
|
+
|
275
|
+
public final class ItemBSQLiteOpenHelper extends ItemSQLiteOpenHelper {
|
276
|
+
|
277
|
+
...
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
public void onCreate(SQLiteDatabase database) {
|
282
|
+
|
283
|
+
//Logの追加
|
284
|
+
|
285
|
+
Log.v("ItemBSQLiteOpenHelper","ItemBSQLiteOpenHelper onCreate");
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
database.execSQL("CREATE TABLE " + this.getTABLE_NAME()
|
290
|
+
|
291
|
+
+ " (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT not null,value TEXT not null);");
|
292
|
+
|
293
|
+
}
|
294
|
+
|
295
|
+
```
|