Android:进度对话框不显示

时间:2010-08-30 01:31:01

标签: android dialog progress

我有一些数据在用户第一次输入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

这看起来应该很简单,但结果却是巨大的痛苦。任何帮助,将不胜感激。 : - )

2 个答案:

答案 0 :(得分:2)

只需使用这条简单的行:

mProgressDialog = ProgressDialog.show(context, "", "msg to show", true);

你可以用以下方式解雇它:

mProgressDialog.dismiss();

答案 1 :(得分:2)

使用AsynTask将数据库加载处理放在后台函数和后执行显示结果中。还有另一个处理事物的功能,直到这里运行的后台进程是asynTask的例子

  

Android - I want to show file upload progress to the user