2011-11-08 5 views
0

可能性の重複をトースト:
Android: ProgressDialog.show() crashes with getApplicationContextアンドロイド:ProgressDialogが、その後

私が最初に乾杯を表示するプログレスダイアログを持っていたいです。私は、メッセージが送信されたことを示すトーストを15秒、30秒、60秒、遅延なしのような、ユーザーが選択した時間遅延の間、ロードするプログレス・ダイアログを必要とします。あなたはそれを実装する方法を手伝ってくれますか?私のコードでどこでどのようにすればいいですか?私のコードは次のとおりです。

btnSend.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       String phoneNo = editTextRecipient.getText().toString(); 
       String message = editTextNewMessage.getText().toString(); 
       boolean split = false; 

       final Toast toast = Toast.makeText(getBaseContext(), 
         "Your message " + "\"" + message + "\"" + " is sent to " +"\""+ phoneNo+"\"", 
          Toast.LENGTH_SHORT); 

       Runnable showToastRunnable = new Runnable() { 
        public void run() { 
         toast.show(); 
     // Send button Listener 

        } 
       }; 

       if (phoneNo.length()>0 && message.length()>0) { 
        if (count == 0) { 
          handler.postDelayed(showToastRunnable, 0); 
         } 
         else if (count == 1) { 
          handler.postDelayed(showToastRunnable, 15000); 
         } 
         else if (count == 2) { 
          handler.postDelayed(showToastRunnable, 30000); 
         } 
         else if (count == 3) { 
          handler.postDelayed(showToastRunnable, 60000); 
         } 
       } 
        // sendSMS(phoneNo, message, split); */ 
       else 
        Toast.makeText(getBaseContext(), 
         "Please enter both phone number and message.", 
         Toast.LENGTH_SHORT).show(); 
      } 
     });   
    } 

緊急に必要です。あなたがダイアログをキャンセルするために、次のコード

private ProgressDialog dialog; 
public void showProgress() { 
    dialogSet = true; 
    // prepare the dialog box 
    //ProgressDialog 
    dialog = new ProgressDialog(this); 
    // make the progress bar cancelable 
    dialog.setCancelable(true); 
    // set a message text 
    dialog.setMessage("Please wait.."); 
    // show it 
    dialog.show(); 

} 

を使用して進行状況ダイアログを表示することができ

+0

のようなあなたのコード表示することができますか? –

+0

なし、実装方法がわからない – kev

答えて

1

、あなたはdialog.cancel()を使用する必要があります。ダイアログをキャンセルした後、あなたはToast

変更は、あなたの進行状況ダイアログコードは、この

Runnable showToastRunnable = new Runnable() { 
       public void run() { 
        dialog.cancel(); 
        toast.show(); 
       // Send button Listener 
       } 
      }; 
      if (phoneNo.length()>0 && message.length()>0) {          
       showProgress();  
       if (count == 0) { 
         handler.postDelayed(showToastRunnable, 0); 

        } 
        else if (count == 1) { 
         handler.postDelayed(showToastRunnable, 3000); 

        } 
        else if (count == 2) { 
         handler.postDelayed(showToastRunnable, 30000); 
        } 
        else if (count == 3) { 
         handler.postDelayed(showToastRunnable, 60000); 
        } 
      } 
       // sendSMS(phoneNo, message, split); */ 
      else 
       Toast.makeText(getBaseContext(), 
        "Please enter both phone number and message.", 
        Toast.LENGTH_SHORT).show(); 
     } 
+0

ユーザーが送信ボタンをタップしたときに進捗ダイアログを表示したいという意味です。例では、ユーザーが送信ボタンをタップすると15秒の遅延が選択され、15秒後にメッセージが送信されたことが進行状況ダイアログに表示されます。 – kev

+0

最初に 'showProgress()'を実行すると、進捗ダイアログが表示され、15秒後に遅れて15秒後にダイアログが消え、トーストが表示されます。 – Sandy

+0

私のコードを使って私にそれを見せてもらえますか?上から?あなたのコードをそれに適用しますか? – kev

関連する問題