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

如果它满意,请您接受我的回答要求 –