Android AlertDialog - PullRequest
       5

Android AlertDialog

0 голосов
/ 24 мая 2011

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

    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setMessage("Are you sure you want to exit?")

           .setCancelable(false)

           .setPositiveButton("Yes", new DialogInterface.OnClickListener()
              {
               public void onClick(DialogInterface dialog, int id)
               {
                    Activity.this.finish();

               }

           })
           .setNegativeButton("No", new DialogInterface.OnClickListener() {

               public void onClick(DialogInterface dialog, int id)
               {

                    dialog.cancel();
               }

           });

    AlertDialog alert = builder.create();

    alert.show();

1 Ответ

0 голосов
/ 25 мая 2011
private final static int DIALOG_XYZ = 0;

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
        case DIALOG_XYZ:
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("Are you sure you want to exit?")
                   .setCancelable(false)
                   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            Activity.this.finish();
                       }
                   })
                   .setNegativeButton("No", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                       }
                   });
            Dialog alert = builder.create();
            return alert;
    }
    return null;
}

Затем, когда вы хотите показать диалог (откуда угодно, просто сделайте -

showDialog(DIALOG_XYZ);

Примечание. Как намекнул @Hyberboreus, вы не можете отобразить диалоговое окно с предупреждением в потоке, не являющемся пользовательским интерфейсом, например, в другом запущенном потоке или в службе и т. Д. Если это то, что вам нужно, посмотрите примеры AsyncTask, доступные на странице разработчика. сайт, который расскажет вам, как синхронизировать фоновые потоки с потоками пользовательского интерфейса и обновить пользовательский интерфейс. НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...