2016-11-18 16 views
-3

私はそれを簡単に行うことができますが、ここからいくつかの例を取ろうとしましたが、progressDialogを表示していません。私がしたいのは、ボタンをクリックしてタスクが完了したらProgressDialogを表示することです:ProgressDialogがアンドロイドに表示されていません

ありがとうございます!

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

こんにちは、あなたの方法ですが、正しく表示されていません。今、ボタンをクリックしたときではなく、タスクが1秒未満で完了したときにprogressDialogしか表示されません。 –

0

スレッドがあなたのプログレスバーが表示し、すぐに却下され、バックグラウンドで実行される独立したプロセスであり、(progress.dismissを呼び出します)。 onPhotoTaken()の後にrun()を実行します。

+0

onPhotoTaken()の後にprogress.dismiss()を置くと、タスクが終了したときに2番目に、ボタンをクリックしたときには表示されません。 –

0

以下のコードでは、スレッドが実行されている間にダイアログを閉じるので、ダイアログを閉じてスレッド内のタスクを待つことはできません。

onPhotoTaken():ダイアログを閉じることができるように任意の値を返す必要があります。

メインスレッドでダイアログを閉じる

+0

こんにちは。動かない。さて、私はタスクが1秒未満で終了したときにprogressDialogしか見ることができませんが、ボタンをクリックしてタスクが実行されている間は表示されません –

+0

スレッドを削除できます –

+0

あなたはsatiesfied要件 –

関連する問題