У меня есть некоторые данные, которые я загружаю в базу данных при первом входе пользователя в мой Activity
и хочу показать ProgressDialog
, пока эти данные загружаются впервые Моя активность - 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
.
Кажется, это должно быть просто, но это оказывается огромной болью. Любая помощь будет оценена. : -)