0

我想调出一个进度对话框,然后将以下代码放入 MainActivity 的 onCreate 方法中

ProgressDialog.show(MainActivity.this, "", "Loading...");

但在那之后,我会消失 ProgressDialog 然后我把

progressDialog.dismiss();

但是eclipse告诉我:“不能从类型Dialog中对非静态方法dismiss()进行静态引用”为什么?片段是

if(check.isDeviceConnected())
        {
            sincro = new Synk(this);
            sincro.start();
            ProgressDialog.show(MainActivity.this, "", "Loading");

            }

基本上我希望 ProgressDialog 在同步后消失所以我认为 progressDialog.dismiss() 必须设置为}

4

3 回答 3

3

您需要捕获对 ProgressDialog 的引用:

ProgressDialog myDialog = ProgressDialog.show(MainActivity.this, "", "Loading...");

然后你可以这样做:

myDialog.dismiss();

这需要以这种方式完成,因为dismiss()它不是静态方法,并且必须在对象上调用。反之,show(...) 静态方法,所以可以直接调用。(没有对象。)

于 2013-07-29T05:02:13.083 回答
1

以这种方式使用ProgressDialog

用于初始化ProgressDialog

 ProgressDialog dialog = new ProgressDialog(YourActivity.this);
        dialog.setMessage("Loading...");
        dialog.setCancelable(false);

初始化显示后ProgressDialog

 dialog.show();

解雇ProgressDialog

 dialog.dismiss();
于 2013-07-29T05:03:33.297 回答
0

你应该改成这样:

if(check.isDeviceConnected())
    {
        sincro = new Synk(YourActivity.this);
        sincro.start();
        ProgressDialog mydialog = null;
        mydialog = ProgressDialog.show(MainActivity.this, "", "Loading");

        }

那么你必须输入:

        mydialog.dismiss();
于 2013-07-29T05:10:36.447 回答