2011-09-17 18 views
6

Messagebox androide no se presenta debido a terminar llamada, cómo hacer esta espera función para bien y cierreandroide Messagebox

public void msbox(String str,String str2) 
{ 
    AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this);      
    dlgAlert.setMessage(str2); 
    dlgAlert.setTitle(str);    
    dlgAlert.setPositiveButton("OK", null); 
    dlgAlert.setCancelable(true); 
    dlgAlert.create().show(); 
    finish(); 
} 

debería ser así

public void msbox(String str,String str2) 
{ 
    AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this);      
    dlgAlert.setTitle(str); 
    dlgAlert.setMessage(str2); 
    dlgAlert.setPositiveButton("OK",new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      finish(); 
     } 
    }); 
    dlgAlert.setCancelable(true); 
    dlgAlert.create().show(); 
} 
+1

http://stackoverflow.com/questions/3782676/alertdialog-doesnt-wait-for-input –

+0

gracias por la entrada. –

+0

¿debería proporcionarlo como un aswer si lo usaste así? –

Respuesta

6

ver SO pregunta : AlertDialog doesn't wait for input

tendrá que implementar la devolución de llamada (OnClickListener) cuando el usuario haga clic en Aceptar en AlertDialog.

Todo esto debido a los cuadros de diálogo de Android no son modales (sin bloqueo hilo invocador)

dlgAlert.setPositiveButton("OK",new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) { 
     // call your code here 
    } 
}); 
5

Si desea crear un cuadro de diálogo (cuadro de mensaje, llamada en C#, vb.net, etc) en Android programando, simplemente copie este código y péguelo en el evento click de cualquier botón donde lo necesite.

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder 
    .setTitle("Deleting a Contact No") 
    .setMessage("Are you sure?") 
    .setIcon(android.R.drawable.ic_dialog_alert) 
    .setPositiveButton("Yes", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) 
     {  
       //do some thing here which you need 
    } 
    });    
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) 
     { 
     dialog.dismiss();   
     } 
    });   
AlertDialog alert = builder.create(); 
     alert.show();