2013-01-18 4 views
24

Questo è il mio codice per un avviso, mostra un messaggio quando si preme il pulsante. Come posso fare un pulsante OK per il licenziamento?Pulsante Ok per Alert Dialog su Android

Button bm1 = (Button) findViewById(R.id.button1); 
    bm1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      AlertDialog alert = new AlertDialog.Builder(screen4.this).create(); 
      alert.setTitle("Doctor"); 
      alert.setMessage("message"); 
      alert.setCancelMessage(null); 
      alert.show(); 
     } 
    }); 
}}  

Ho messo alert.setCancelMessage (null) ma non mostra alcun pulsante da eliminare.

Grazie per tutte le risposte.

Soluzione:

 Button bm1 = (Button) findViewById(R.id.button1); 
     bm1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Builder alert = new AlertDialog.Builder(screen4.this); 
      alert.setTitle("Doctor"); 
      alert.setMessage("message"); 
      alert.setPositiveButton("OK", null); 
      alert.show(); 
     } 
    }); 
+0

Per coloro che suggeriscono 'setPositiveButton()' o 'setNegativeButton()' su 'AlertDialog alert' basta guardare http://developer.android.com/reference/android/app/AlertDialog .html – user370305

risposta

40

Cambia la tua alertdialog a questo:

Builder alert = new AlertDialog.Builder(screen4.this); 
alert.setTitle("Doctor"); 
alert.setMessage("message"); 
alert.setPositiveButton("OK",null); 
alert.show();  
+0

Guarda http://developer.android.com/reference/android/app/AlertDialog.html – user370305

+0

Ho aggiornato la mia risposta. Si prega di verificare la modifica –

+0

Lo faccio, mi dà errore e dice "Il metodo setPositiveButton (stringa null) non è definito per il tipo AlertDialog" –

0

alert.setPositiveButton o alert.setNegativeButton

+0

Guarda http://developer.android.com/reference/android/app/AlertDialog.html – user370305

1

È possibile farlo utilizzando setPositiveButton e setNegativeButton

alert.setPositiveButton("OK", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface alert, int which) { 
      // TODO Auto-generated method stub 
      //Do something 
      alert.dismiss(); 
     } 
    }); 
    alert.setNegativeButton("Cancel", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface alert, int which) { 
      // TODO Auto-generated method stub 
      alert.dismiss(); 
     } 
    }); 

Modificato:

alert.setButton("OK", new DialogInterface.OnClickListener() { 

    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // TODO Auto-generated method stub 
     // Do something 
     alert.dismiss(); 
     } 
    }); 
alert.setButton("Cancel", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // TODO Auto-generated method stub 

     alert.dismiss(); 
     } 
    }); 
+0

Non esiste alcun metodo 'setPositiveButton' per' AlertDialog alert'. – user370305

+0

Vedere http://developer.android.com/reference/android/app/AlertDialog.html – user370305

+0

@ user370305, Sì, mancava completamente che fosse una AlertDialog. –

10

è possibile creare sia OK e il tasto per annullare la finestra di dialogo di utilizzare questo,

AlertDialog.Builder builder = new AlertDialog.Builder(
         getApplicationContext()); 
       builder.setCancelable(true); 
       builder.setTitle("Title"); 
       builder.setInverseBackgroundForced(true); 
       builder.setPositiveButton("Yes", 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, 
            int which) { 
           dialog.dismiss(); 
          } 
         }); 
       builder.setNegativeButton("No", 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, 
            int which) { 
           dialog.dismiss(); 
          } 
         }); 
       AlertDialog alert = builder.create(); 
       alert.show(); 
+0

builder.setInverseBackgroundForced (true); è deprecato –

0
Button bm1 = (Button) findViewById(R.id.button1); 
    bm1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      AlertDialog alert = new AlertDialog.Builder(screen4.this).create(); 
      alert.setTitle("Doctor"); 
      alert.setMessage("message"); 
      alert.setCancelMessage(null); 

      alert.setButton("OK", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int which) { 
        //do somthing or dismiss dialog by    dialog.dismiss(); 

       } 
      }); 

      alert.show(); 
     } 
    }); 
}}  
0
Button bm1 = (Button) findViewById(R.id.button1); 
bm1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    final AlertDialog dialog = new AlertDialog.Builder(screen4.this).create(); 
    dialog.setTitle("Doctor"); 
    dialog.setMessage("message"); 
    dialog.setButton("Ok",new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
      // here you can add functions 

      } 
    }); 
    dialog.setButton2("Cancel",new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
     // here you can add functions 
       dialog.dismiss(); 
    } 
    }); 
    dialog.show(); 
    }};  
+0

Segnala errore "Il metodo setButton (Charsquence, DialogInterface.OnClickListener) dal tipo AlertDialog è obsoleto" –

3

Non potrebbe che proprio essere fatto da solo con un pulsante di positivo?

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setMessage("Look at this dialog!") 
     .setCancelable(false) 
     .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       //do things 
      } 
     }); 
AlertDialog alert = builder.create(); 
alert.show(); 
1
bt = (Button) findViewById(R.id.button1); 
    bt.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      ab = new AlertDialog.Builder(MainActivity.this); 

      ab.setTitle("confirm"); 
      ab.setIcon(R.drawable.ic_launcher); 
      ab.setMessage("Do u want to close this application?"); 

      ab.setPositiveButton("ok", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int i) { 
        Toast.makeText(MainActivity.this, "ok", Toast.LENGTH_SHORT).show(); 
       } 
      }); 

      ab.setNegativeButton("cancle", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int i) { 
        Toast.makeText(MainActivity.this, "cancle", Toast.LENGTH_SHORT).show(); 
       } 
      }); 

      ab.show(); 
     } 
    }); 
+0

Fornire una spiegazione del codice. – Pureferret