在我的活动的onCreate中给出以下代码:
super.onCreate(savedInstanceState);
setContentView(R.layout.logmenu);
//DEBUG CODE
new DBAdaptor(this).dropDatabase();
if (!DBAdaptor.checkDataBase() ) {
showDialog(DIALOG_NO_DB);
}
seasonSpinner = (Spinner) findViewById(R.id.seasonspinner);
List<String> seasons = new ArrayList<String>();
SQLiteDatabase db = new DBAdaptor(this).getReadableDatabase();
/* //Select _key FROM seasons;
Cursor results = db.query("seasons", new String[] {"_key"}, null, null, null, null, null);
results.moveToFirst();
do {
String season = results.getString(results.getColumnIndex("_key"));
seasons.add(season);
} while (results.moveToNext());*/
如果我如图所示运行它,并且填充了微调器的部分,则会发生以下情况:
但是,如果我取消注释该块,则这些步骤都不会运行。相反,我得到一个SQLiteException:“没有这样的表:季节:,编译时:SELECT _key FROM seasons”
为什么不执行步骤1-5?为什么它会在我准备好之前跳过并尝试编译该查询?我如何防止这种情况并强制它按顺序执行?
答案 0 :(得分:1)
我认为你的问题是你创建的对话框没有阻止方法的其余部分,所以你仍然试图填充微调器,然后用户可以告诉应用程序(通过对话框)来创建数据库