0

以下是创建进度对话框的示例:

第一种情况:

私有 ProgressDialog 进度对话框;

btnCircle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDialog = ProgressDialog.show(MainActivity.this, 
                "Loading", "Please Wait");
                SporednaDretva sd = new SporednaDretva(progressDialog, false);
                sd.start();

            }
        });

请注意,这里我有“progressDialog = ProgressDialog.show(MainActivity.this, "Loading", "Please Wait");"

第二种情况:

btnProgress.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDialog = new ProgressDialog(MainActivity.this);
                progressDialog.setMessage("Downloading");
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDialog.show();
                SporednaDretva sd = new SporednaDretva(progressDialog, true);
                sd.start();

            }
        });

这里我有“progressDialog = new ProgressDialog(MainActivity.this);”

问题:谁能向我解释一下这两种创建进度对话框的方法?我知道第一个对话框是圆形对话框,第二个是水平进度对话框,但是为什么在第一个示例中我有 "progressDialog = ProgressDialog.show(MainActivity.this, "Loading", "Please Wait")" 而没有 new ProgressDialog()在第二个示例中,我有新的 ProgresDialog()?

4

1 回答 1

0

有趣的 。第一个是 ProgressDialog 类的静态方法,它扩展了 AlertDialog,它扩展了 Dialog。现在第二个是Dialog类的一个非静态方法,和alertdialog继承的一样。

因此,似乎第一个更好地要求程序员易于使用。然而第一个的身体在一个之下!

public static ProgressDialog show(Context context, CharSequence title,
            CharSequence message, boolean indeterminate,
            boolean cancelable, OnCancelListener cancelListener) {
        ProgressDialog dialog = new ProgressDialog(context);
        dialog.setTitle(title);
        dialog.setMessage(message);
        dialog.setIndeterminate(indeterminate);
        dialog.setCancelable(cancelable);
        dialog.setOnCancelListener(cancelListener);
        dialog.show();
        return dialog;
    }

这是第二个。

于 2018-07-30T14:42:44.587 回答