2013-04-15 65 views
1

我想解僱AlertDialog窗口,但「確定」或「取消」按鈕不點擊的時候,但是當一個動作被調用。 事實上,我想創建方式的onResume功能對話框:辭退AlertDialog無需點擊按鈕

@Override 
public void onResume() { 
    super.onResume(); 
    alert = new AlertDialog.Builder(this); 
    alert.setTitle("Stay stuck to a tag"); 
    alert.create().show(); 
} 

,然後退出它,當一個函數被調用,就像

private void dismissMyDiag() { 
    alert.dismiss(); 
} 

當然,我已經看到了這樣做,與由onclick事件不是我想做的事情。 是否有可能做這樣的事情?如果沒有,對話框的哪個國王允許我這樣做?

謝謝!

+0

是否有一個的AsyncTask,或另一種後臺進程,可能調用dismissMyDiag()? – eltabo

+0

什麼時候該方法被調用?異步任務?或者在主要活動中?你有沒有想過使用線程? –

回答

5

獲取alertDialog這樣

AlertDialog dialog; 
alert = new AlertDialog.Builder(this); 

dialog=alert.create().show(); 

然後調用

private void dismissMyDiag() { 
    dialog.dismiss(); 
} 
+2

謝謝,就是這樣!只是要更精確,它像警報=新AlertDialog.Builder(本); \t \t dialog = alert.create(); \t \t dialog.show(); – Derbie

1

試試這個方法:

final AlertDialog d = new AlertDialog.Builder(context) 
       .setView(v) 
       .setTitle(R.string.my_title) 
       .setPositiveButton(android.R.string.ok, 
         new Dialog.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface d, int which) { 
           //Do nothing here. We override the onclick 
          } 
         }) 
       .setNegativeButton(android.R.string.cancel, null) 
       .create(); 

     d.setOnShowListener(new DialogInterface.OnShowListener() { 

      @Override 
      public void onShow(DialogInterface dialog) { 

       Button b = d.getButton(AlertDialog.BUTTON_POSITIVE); 
       b.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View view) { 
         // TODO Do something 

         //Dismiss once everything is OK. 
         d.dismiss(); 
        } 
       }); 
      } 
     });