2016-11-18 5 views
-3

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

Заранее благодарен!

buttonStartOCR.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      progress = ProgressDialog.show(SimpleAndroidORCActivity.this, "Processing", "Please wait...", true); 
       new Thread(new Runnable() { 
        public void run() { 
         runOnUiThread(new Runnable() { 
          @Override 
          public void run() { 
           onPhotoTaken(); 
          } 
         }); 
        }; 
       }).start(); 
      progress.dismiss(); 
     } 
    }); 
+0

удалить progress.dismiss(); и проверьте его – Vadivel

ответ

1

Ваш прогрессDialog показывает, но его отклонили сразу после шоу. Поместите свое отклонение внутри метода run вашего runnable.

Таким образом:

buttonStartOCR.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     progress = ProgressDialog.show(SimpleAndroidORCActivity.this, "Processing", "Please wait...", true); 
      new Thread(new Runnable() { 
       public void run() { 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          onPhotoTaken(); 
          progress.dismiss(); 
         } 
        }); 
       }; 
      }).start(); 

    } 
}); 
+0

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

0

нить является самостоятельным процессом, который работает в фоновом режиме ваш прогресс бар показывает и сразу отвергая, вызовите progress.dismiss(); в вашем run() после вашего onPhotoTaken()

+0

Если я поместил progress.dismiss() после onPhotoTaken(), я могу увидеть диалог меньше, чем второй, когда задача закончена, но не тогда, когда я нажимаю кнопку –

0

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

buttonStartOCR.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       progress = ProgressDialog.show(SimpleAndroidORCActivity.this, "Processing", "Please wait...", true); 
        new Thread(new Runnable() { 
         public void run() { 
          runOnUiThread(new Runnable() { 
           @Override 
           public void run() { 
            onPhotoTaken(); 
            progress.dismiss(); 
           } 
          }); 
         }; 
        }).start(); 

      } 
     }); 

onPhotoTaken(): - должен возвращать любое значение, чтобы мы могли отклонить диалог.

и отклонить диалог в главном трэхе

+0

Привет. Не работает. Теперь я вижу только прогрессDialog, когда задача заканчивается менее секунды, но не когда я нажимаю кнопку, а во время выполнения задачи –

+0

вы можете удалить поток –

+0

, можете ли вы принять мой ответ, если он удовлетворен вашим Требование –