129 votes

Comment ajouter un troisième bouton à une boîte de dialogue d'alerte Android ?

L'API indique que la boîte de dialogue d'alerte peut comporter un, deux ou trois boutons, mais le SDK ne prévoit qu'un bouton positif et un bouton négatif. Comment puis-je alors ajouter un troisième bouton ?

247voto

ninjasense Points 5934

Lorsque vous créez le dialogue, ajoutez quelque chose comme ceci au constructeur :

        builder = new AlertDialog.Builder(context);
    builder.setTitle("Test");
    builder.setIcon(R.drawable.icon);
    builder
            .setMessage("test");
    builder.setPositiveButton("Call Now",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();

                }
            });

    builder.setNeutralButton("Setup",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                    context.startActivity(new Intent(context, Setup.class));
                    //dialog.cancel();

                }
            });

    builder.setNegativeButton("Exit",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();

                }
            });

144voto

sahhhm Points 2957

Cet extrait de code devrait vous aider à expliquer les trois différents boutons que vous pouvez utiliser :

    alertDialog = new AlertDialog.Builder(this).create();

    alertDialog.setTitle("Dialog Button");

    alertDialog.setMessage("This is a three-button dialog!");

    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Button 1 Text", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int id) {

        //...

    } }); 

    alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Button 2 Text", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int id) {

        //...

    }}); 

    alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Button 3 Text", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int id) {

        //...

    }});

50voto

Oded Breiner Points 1852

Ajouter tout nombre de boutons sans xml :

    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Title");
    builder.setItems(new CharSequence[]
            {"button 1", "button 2", "button 3", "button 4"},
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // The 'which' argument contains the index position
                    // of the selected item
                    switch (which) {
                        case 0:
                            Toast.makeText(context, "clicked 1", 0).show();
                            break;
                        case 1:
                            Toast.makeText(context, "clicked 2", 0).show();
                            break;
                        case 2:
                            Toast.makeText(context, "clicked 3", 0).show();
                            break;
                        case 3:
                            Toast.makeText(context, "clicked 4", 0).show();
                            break;
                    }
                }
            });
    builder.create().show();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X