2011-04-05 40 views
15

我應該在可運行的Run方法中寫入什麼來取消Alert.Bulider?如何取消AlertDialog.Builder

AlertDialog.Builder ad; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Context context=this; 
    ad = new AlertDialog.Builder(context); 
     ad.setTitle("Warning"); 
     ad.setMessage("Just Testing It"); 

     ad.setPositiveButton("Yes", new OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     ad.setNegativeButton("Nooooo", new OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     ad.show(); 
     Handler h=new Handler(); 
     h.postAtTime(r, 10000); 

    } 
    public Runnable r=new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 

     } 
    }; 

回答

20

您不能隱藏AlertDialog.Builder。相反,將成員變量ad聲明爲AlertDialog,請使用構建器創建AlertDialog,並通過編寫ad = builder.create()將其分配給廣告。在運行方法調用ad.cancel();

+0

Thaks甲lot..Gr8幫助 – Harinder 2011-04-05 05:31:28

+0

不工作..嘗試調用虛擬方法'空的android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'對空引用 – TeodorKolev 2016-06-30 07:44:59

+0

它在定製的對話框上工作。謝謝 – jace 2018-01-09 07:15:35

17

show()返回AlertDialog以便使如下的變量:

AlertDialog dlg = ad.show(); 

,然後在需要時駁回 -

dlg.dismiss();