实例化ProgressDialog类的更好方法是什么?为什么?

时间:2018-07-30 14:30:34

标签: android progressdialog android-thread

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

第一种情况:

私有ProgressDialog 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,“正在加载”,“请稍候”);“

第二种情况:

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 = ProgressDialog.show(MainActivity.this,“ Loading”,“ Please Wait”)“在第二个示例中,我有新的ProgresDialog()?

1 个答案:

答案 0 :(得分: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;
    }

这是第二个。