2011-04-05 17 views
15

¿Qué debo escribir en el método Runnable Run para cancelar Alert.Bulider?Cómo cancelar un 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 

     } 
    }; 

Respuesta

20

No puede ocultar un AlertDialog.Builder. En su lugar, declare la variable miembro ad como AlertDialog, cree el AlertDialog utilizando el constructor y asígnelo al anuncio escribiendo ad = builder.create(). En el método de ejecución, llame al ad.cancel();

+0

Thaks Un lot..Gr8 Ayuda – Harinder

+0

No funciona .. intento de invocar método virtual 'void android.widget.Button.setOnClickListener (android.view.View $ OnClickListener)' en una referencia de objeto nulo – TeodorKolev

+0

Funcionó en el cuadro de diálogo personalizado. Gracias – jace

17

show() vuelve AlertDialog así que una variable de la siguiente manera:

AlertDialog dlg = ad.show(); 

y luego despedir cuando sea necesario -

dlg.dismiss(); 
Cuestiones relacionadas