我有一些数据在用户第一次进入我的数据库时加载到数据库中Activity
,并且想展示ProgressDialog
一下第一次加载这些数据的时间。我的 Activity 是一个,在我确定数据确实存在之前ExpandableListActivity
,我不会创建SimpleExpandableListAdapter
或调用传递我的适配器。setListAdapter
我的onCreate
样子是这样的:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCategoryDbHelper = new CategoryDBHelper(this);
// Build default categories... if not there yet
CategoryDbBuilder builder = new CategoryDbBuilder(this);
if (!builder.hasCategoriesInTable()) {
showDialog(PROGRESS_DIALOG_ID);
builder.fillDbWithDefaultCategories();
removeDialog(PROGRESS_DIALOG_ID);
}
populate();
}
我已经onCreateDialog
这样覆盖了:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case PROGRESS_DIALOG_ID: {
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Loading categories for the first time. Please wait...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
return dialog;
}
}
return null;
}
该populate()
方法读取数据库并设置我的列表适配器,然后调用setListAdapter
.
这看起来应该很简单,但结果却是一个巨大的痛苦。任何帮助,将不胜感激。:-)