2011-09-17 11 views
6

Messagebox Android non mostra causa di finire chiamata, come fare questa funzione di attesa per ok e quindi chiudereAndroid 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(); 
} 

dovrebbe essere come questo

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

Grazie per l'input. –

+0

dovrei fornirglielo se lo hai usato così? –

risposta

6

vedere così domanda : AlertDialog doesn't wait for input

è necessario implementare la funzione di richiamata (OnClickListener) quando l'utente fa clic su OK su AlertDialog.

Tutto questo perché le finestre di dialogo Android non sono modali (non-blocking filo invoker)

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

Se si desidera creare una finestra di dialogo (finestra di messaggio, chiamato in C#, vb.net ecc) in Android programmando quindi copia questo codice e incollalo nell'evento click di qualsiasi pulsante dove ti serve.

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