Как лучше создать экземпляр класса ProgressDialog и почему?

Вот пример создания диалога прогресса:

Первая ситуация:

частный 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 = новый ProgressDialog (MainActivity.this);»

ВОПРОС: Может ли кто-нибудь объяснить мне немного об этих двух способах создания диалогового окна прогресса? Я знаю, что первое диалоговое окно представляет собой круговое диалоговое окно, а второе — горизонтальное диалоговое окно прогресса, но почему в первом примере у меня есть «progressDialog = ProgressDialog.show (MainActivity.this, «Загрузка», «Подождите»)» без нового ProgressDialog () а во втором примере у меня есть новый ProgresDialog()?


person Dezo    schedule 30.07.2018    source источник
comment
Смотрите интересные факты, которые я раскрыл в своем ответе.   -  person Koustuv Ganguly    schedule 30.07.2018


Ответы (1)


Интересный . Первый — это статический метод класса 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;
    }

который является вторым.

person Koustuv Ganguly    schedule 30.07.2018
comment
Вы сказали, что первый пример лучше для программиста, почему? - person Dezo; 31.07.2018
comment
простота использования и предопределенный структурированный код. Вероятность ошибки или пропуска установки какого-либо свойства меньше. - person Koustuv Ganguly; 31.07.2018