2016-11-12 18 views
-1

ボタンを押して進行状況ダイアログを表示し、機能が完了したら閉じます。私のコードは以下の通りですが、私には分かりにくい理由のために非常に簡単ですが、実行されません。私はそれはあなたのために働いていない理由を考えることができ進行状況のダイアログが表示されません

final Button button = (Button) findViewById(R.id.syncBtn); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); 
      progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
      progressDialog.setCancelable(false); 
      progressDialog.setTitle("Please Wait.."); 
      progressDialog.setMessage("Preparing to download ..."); 
      progressDialog.show(); 

      bringData(); 

      progressDialog.dismiss(); 
     } 
    }); 

答えて

1

2つの可能性:

  1. 方法は、「bringData()」UIスレッドで実行されます。したがって、UIスレッドは作業を実行しています(bringDataを実行しています)、UIは再描画されません。その後ダイアログを閉じると、ダイアログが表示されないようです。

  2. "bringData()"メソッドでは、バックグラウンドスレッドを開始します。このシナリオでは、ダイアログを表示し、直接閉じることができます。

あなたのコメントで述べたvolleyを使用しているので、GETリクエストが完了したらダイアログを閉じる必要があります。したがって、コールバックメソッドでダイアログを閉じる必要があります。

+0

bringData()はVolleyを使用してGETリクエストを作成しているので、自分で別のスレッドを作成しませんでした。 – traveller

+1

したがって、結果のコールバックメソッドでダイアログを閉じます:) – aschattney

+0

うわー、私はそれを期待していませんでした。できます。私はそれを受け入れることができるようにあなたの答えにコメントを追加してください。 – traveller

関連する問題