Android - What is difference between progressDialog.show() and ProgressDialog.show()?
Asked Answered
P

2

0

I mean, what is difference between return value of ProgressDialog static method show() and the non-static method show of an instance of that class?

Is there any reason to prefer this strategy

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

to this:

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

for a particular situation?

Proprietress answered 22/11, 2016 at 17:59 Comment(0)
B
2

In my opinion, the "correct" method would depend on your usage. The static show( ... ) methods are performing the same steps you are:

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

You can see that any calls to the static show methods with parameters just ends up constructing a ProgressDialog and will call the instance method show().

Using the static show( ... ) methods just make it convenient for you to display a basic ProgressDialog using one line of code.

Beatup answered 22/11, 2016 at 18:38 Comment(0)
T
1

writing it with capital p is the correct way to go since the method show is static

ProgressDialog.show(mActivity,mTitle,mMessage);

see the doc here

enter image description here

Is there any reason to prefer this strategy??

the reason why is the best way to go is that static methods should always be accessed in a static way

Trossachs answered 22/11, 2016 at 18:1 Comment(4)
Actually, the show() method is not static. It is an instance method in Dialog.Beatup
The doc says it is staticSuccentor
Oh. @ΦXocę웃Пepeúpaツ: kurtacious is right. In Dialog (a super type of ProgressDialog) there also exists a show method that is not static (and takes no arguments). OP asks for the difference between those two methods.Liquefy
OP's question was about the difference between the two methods, not how you should call a static method. Regarding the show() method being non-static, See: developer.android.com/reference/android/app/Dialog.html#show()Beatup

© 2022 - 2024 — McMap. All rights reserved.