2011-11-08 56 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(); 
      } 
     });   
    } 

急需。

+0

哪裏是你的進度對話框的代碼? –

+0

沒有,我不知道如何實現它 – kev

回答

1

您可以使用下面的代碼

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(); 

} 

取消該對話框顯示進度對話框,你應該使用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