質問編集履歴

1

ItemBSQLiteOpenHelperの動作の有無の確認報告、一部コードの修正

2018/09/06 12:06

投稿

shal0ne
shal0ne

スコア51

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 val TABLE_NAME:String
151
+ abstract String TABLE_NAME;
152
152
 
153
153
 
154
154
 
@@ -162,7 +162,7 @@
162
162
 
163
163
  @Override
164
164
 
165
- abstract fun onCreate(SQLiteDatabase p0);
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
+ ```