2016-11-18 129 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

您的ProgressDialog正在顯示,但它在演出後立即被解僱。把你的關注放在runnable的run方法裏面。

這樣:

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

嗨,是在你的方式,但沒有正確顯示。現在,當任務完成時間不到一秒鐘時,我只能看到progressDialog,而不是當我單擊按鈕 –

0

一個線程是在後臺運行的進度條顯示,並立即解僱,調用progress.dismiss()獨立的進程;在你的runP()後你的onPhotoTaken()

+0

時如果我在onPhotoTaken()之後放置progress.dismiss(),我可以看到小於一個的對話框第二個任務完成時,但不是當我點擊按鈕 –

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(): - 應返回任何值,以便我們可以關閉對話框。在主

並關閉對話框thraed

+0

嗨。不管用。現在,我只能看到progressDialog,當任務完成時間不到一秒鐘,但不是當我單擊按鈕並且任務正在執行時 –

+0

可以刪除線程 –

+0

如果它滿意,請您接受我的回答要求 –