Ошибка с alerttdialog.dismiss () - PullRequest
0 голосов
/ 27 апреля 2011

Я хочу проверить условие, затем, если оно ложное, я хочу отклонить ранее показанный AlertDialog. Тем не менее, я сталкиваюсь с этой ошибкой:

Метод dismiss () не определен для типа AlertDialog.Builder

Код:

ad.show();
        if (call.isInCall()== false)
        {
            ad.dismiss();
        }

В чем проблема?

Редактировать: проблема:

AlertDialog.Builder ad = new AlertDialog.Builder(context);
        d = ad.create();
        ad.setTitle("Appel en cours...");
        ad.setMessage("Voulez vous répondre à cet appel?");
        //ad.create();
        ad.setPositiveButton("Oui", 
.....

if(call.isInCall() == false && d != null && d.isShowing()){
           d.dismiss();
        }

=> Принудительное закрытие. Большое спасибо за вашу помощь.

1 Ответ

4 голосов
/ 27 апреля 2011

Вам нужно будет использовать конструктор, чтобы создать диалоговое окно, прежде чем вы сможете сделать что-то подобное.

//Let's change this so you have a field declared in your class.
AlertDialog d;

//Somewhere, maybe in onCreate() you're using the builder to instantiate the dialog.

//insert all builder creation and methods here first... then call
d = ad.create();

//somewhere else in your code you've shown the dialog with
d.show();

//again, some where else you're checking if the dialog is displaying and dismissing it
if(call.isInCall() == false && d != null && d.isShowing()){
   d.dismiss();
}

Вам, конечно, нужно быть осторожным, так как область действия AlertDialog зависит отгде вы звоните этот код.Это также не очень рекомендуемый метод для обработки диалогов.Вам следует изучить использование обратных вызовов Activity onCreateDialog () onPrepareDialog (): http://developer.android.com/guide/topics/ui/dialogs.html

...