Android AlertDialog одиночная кнопка - PullRequest
157 голосов
/ 28 апреля 2011

Мне бы хотелось иметь конструктор AlertDialog, который имеет только одну кнопку с надписью OK или Готово или что-то в этом роде, вместо значений по умолчанию - да и нет. Можно ли это сделать с помощью стандартного AlertDialog, или мне придется использовать что-то еще?

Ответы [ 8 ]

357 голосов
/ 28 апреля 2011

Разве нельзя сделать это только с помощью положительной кнопки?

44 голосов
/ 03 января 2013

Вы можете использовать это:

AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
builder1.setTitle("Title");
builder1.setMessage("my message");
builder1.setCancelable(true);
builder1.setNeutralButton(android.R.string.ok,
        new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int id) {
        dialog.cancel();
    }
});

AlertDialog alert11 = builder1.create();
alert11.show();
11 голосов
/ 21 февраля 2015

Другой подход

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

Бонус

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);
builder.setMessage("Message dialog with three buttons");

       builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int id) {
                //do things
           }
       });

      builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int id) {
                //do things
           }
       });

       builder.setNeutralButton("CANCEL", new DialogInterface.OnClickListener()     {
           public void onClick(DialogInterface dialog, int id) {
                //do things
           }
       });
AlertDialog alert = builder.create();
alert.show();

Теперь вы можете использовать один, дваили три кнопки ..

8 голосов
/ 21 июля 2015

Это то, что ближе к одному вкладышу, которое должно быть, если бы Android API был каким-то умным:

new AlertDialog.Builder(this)
    .setMessage(msg)
    .setPositiveButton("OK", null)
    .show();
4 голосов
/ 08 августа 2014

Для повторного использования кода, Вы можете сделать это таким способом

public static Dialog getDialog(Context context,String title, String message, DialogType typeButtons ) {

        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle(title)
        .setMessage(message)
               .setCancelable(false);

        if (typeButtons == DialogType.SINGLE_BUTTON) {
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                        //do things
                   }
               });
        }

        AlertDialog alert = builder.create();

        return alert;
    }

    public enum DialogType {
        SINGLE_BUTTON

    }

// Другие проблемы повторного использования кода, такие как использование интерфейсов для обеспечения обратной связи, также будут отличными.

0 голосов
/ 16 мая 2019

Котлин

  val dialogBuilder = AlertDialog.Builder(this.context)
  dialogBuilder.setTitle("Alert")
               .setMessage(message)
               .setPositiveButton("OK", null)
               .create()
               .show()
0 голосов
/ 23 августа 2017

Очень просто

new AlertDialog.Builder(this).setView(input).setPositiveButton("ENTER",            
                        new DialogInterface.OnClickListener()                      
                        {   public void onClick(DialogInterface di,int id)     
                            {
                                output.setText(input.getText().toString());
                            }
                        }
                     )
        .create().show();

Если вы хотите прочитать полную программу, см. Здесь: Программа для ввода данных от пользователя с использованием диалога и вывода на экран

0 голосов
/ 11 февраля 2013

В Mono для Android вы можете сделать это:

var ad = new AlertDialog.Builder(this);
ad.SetTitle("Title");
ad.SetMessage("Message");
ad.SetPositiveButton("OK", delegate { ad.Dispose(); });
ad.Show();
...