2012-02-02 46 views
1

我想在java'A'中顯示進度對話框。在從'A'調用java'B'的類的時候,它從web服務下載數據並將數據保存到文件中。它沒有顯示的進度對話框。我使用的代碼是:進度對話框不工作

ProgressDlg= ProgressDialog.show(Doctor.this, "","Loading. Please wait...", true); 
String time_batch=mDataIntent.getExtras().getString("TIME_BATCH"); 
String patientid=mDataIntent.getExtras().getString("PatientId") 
mGetHeartRate = new GetHeartRate(Doctor.this, mHandler); 
mgetEcgAnalized = new getEcgAnalized(Doctor.this, mHandler); 
mGetHeartRate.getHeart(patientid,time_batch);          
mgetEcgAnalized.getECG(patientid, time_batch, "I".toString()); 
ProgressDlg.dismiss(); 
+0

logcat中有什麼? – Otra 2012-02-02 15:40:07

回答

1

您是否在AsyncTask中執行ProgressDialog?這樣的事情:

public class ExampleTask extends AsyncTask<String, Integer, String> { 
    private ProgressDialog progressDlg; 
    private Context context; 
    private Handler progressHandler; 

    public ExampleTask(Context context) { 
     this.context = context; 
    } 

    @Override 
    protected void onPreExecute() { 
     progressHandler = new Handler(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     //to do 
    } 

    @Override 
    protected void onPostExecute(String filePath) { 
     if (progressDlg != null) { 
      progressDlg.dismiss(); 
      progressDlg = null; 
     } 
    } 

    @Override 
    protected void onProgressUpdate(final Integer... values) { 
     final int progress = values[0]/1000; 
     if (progressDlg == null) { 
      progressHandler.post(new Runnable() { 
       @Override 
       public void run() { 
        final int max = values[1]/1000; 
        progressDlg = new ProgressDialog(context); 
        progressDlg.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
        progressDlg.setMessage("Message"); 
        progressDlg.setMax(max); 
        progressDlg.show(); 

       } 
      }); 
     } else { 
      progressDlg.setProgress(progress); 
     } 
    } 
} 
+0

不是我沒有使用AsyncTask,我不知道這項工作如何,我怎麼能從我的活動中調用它 – prokopis 2012-02-03 07:17:12

+0

我嘗試了它並且工作,但是現在我有另外一個問題。是否可以更新asyngtask中進度對話框的消息? – prokopis 2012-02-03 09:55:22

+0

您可以設置進度對話框的消息,並認爲可以更新它,但我從來沒有這樣做過。 – Alex 2012-02-03 15:46:51

0

這適用於我。

ProgressDialog dialog = ProgressDialog.show(activity, "", PopUpHelper.LOADING, true); 
dialog.show();