Отображение диалогового окна прогресса при нажатии кнопки - PullRequest
0 голосов
/ 20 декабря 2011

Я использую приведенный ниже код в своем приложении.

    Button button = new Button(this);
    button.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    ProgressDialog pd = new ProgressDialog(v.getContext());
                    pd.setTitle("Please wait.......");
                    pd.show();
                    // some task which will take minimum  2 or 3 seconds
                    // e.g. parsing XML file
                    pd.dismiss();
                }
            });

Я думал, что согласно приведенному выше коду, когда я нажимаю кнопку, на экране должно отображаться диалоговое окно прогресса, но оно не отображается.Почему я не знаю.

Но если я уберу pd.dismiss() его отображение, то это также только после отпускания кнопки.

Если я поставлю любой бесконечный цикл вместо моей задачи также, не отображает диалоговое окно прогресса .

Мой код правильный?Если кто-нибудь знает решение моего требования, пожалуйста, ответьте на это сообщение.

Спасибо.

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

AsyncTasks предназначены для этой цели.запустить asyncTask, когда кнопка нажата, и в preExecute asyncTask показать диалоговое окно, а в PostExecute () asyncTask закрыть диалоговое окно.Выполните действие, которое занимает время в методе background ().

0 голосов
/ 20 декабря 2011

используйте класс AsychTask, чтобы просто записать свой код в метод inBackground (), показать прогресс с помощью onUpdateProgress () и отклонить onPostExecute ()

вот пример ссылки

http://developer.android.com/reference/android/os/AsyncTask.html

http://www.vogella.de/articles/AndroidPerformance/article.html

...