Android - progressDialog.show()和ProgressDialog.show()有什么区别?

时间:2016-11-22 17:59:40

标签: java android progressdialog

我的意思是,ProgressDialog静态方法show()的返回值与该类实例的非静态方法show有什么区别?

是否有理由更喜欢这种策略

ProgressDialog pd = new ProgressDialog(mActivity);
pd.setTitle(mTitle);
pd.setMessage(mMessage);
pd.show();

到此:

ProgressDialog pd = ProgressDialog.show(mActivity,mTitle,mMessage);

针对特定情况?

2 个答案:

答案 0 :(得分:2)

在我看来,"正确"方法取决于您的用法。静态show( ... )方法执行的步骤与您相同:

public static ProgressDialog show(Context context, CharSequence title,
        CharSequence message) {
    return show(context, title, message, false);
}

public static ProgressDialog show(Context context, CharSequence title,
        CharSequence message, boolean indeterminate) {
    return show(context, title, message, indeterminate, false, null);
}

public static ProgressDialog show(Context context, CharSequence title,
        CharSequence message, boolean indeterminate, boolean cancelable) {
    return show(context, title, message, indeterminate, cancelable, null);
}

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;
}

您可以看到,对静态show方法参数的任何调用最终都会构建一个ProgressDialog并调用实例方法show()

使用静态show( ... )方法可以方便您使用一行代码显示基本的ProgressDialog。

答案 1 :(得分:1)

用大写p写它是正确的方法,因为方法显示是静态的

ProgressDialog.show(mActivity,mTitle,mMessage);

请参阅文档here

enter image description here

  

有没有理由更喜欢这种策略?

之所以最好的方法是这样的 应始终以静态方式访问静态方法