Диалоговое окно подтверждения Android, возвращающее true или false

Похоже, нет простого способа заставить диалоговое окно оповещения возвращать простое значение.
Этот код не работает(переменная answerне может быть установлена ​​из слушателя, на самом деле она даже не компилируется)

public static boolean Confirm(Context context) {
    boolean answer;
    AlertDialog dialog = new AlertDialog.Builder(context).create();
    dialog.setTitle("Confirmation");
    dialog.setMessage("Choose Yes or No");
    dialog.setCancelable(false);
    dialog.setButton(DialogInterface.BUTTON_POSITIVE, "Yes", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int buttonId) {
            answer = true;
        }
    });
    dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "No", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int buttonId) {
            answer = false;
        }
    });
    dialog.setIcon(android.R.drawable.ic_dialog_alert);
    dialog.show();
    return answer;
}

ПРИМЕЧАНИЕ. Важно, чтобы метод был самостоятельным. содержится, т. е. не зависит от внешних по отношению к нему переменных или конструкций. Просто позвоните и получите ответ, правда или ложь.

Итак, что делать? Это простое желание вернуть trueили falseкажется гораздо более сложным, чем оно того заслуживает.

Также метод setButton имеет вид:

dialog.setButton(int buttonId, String buttonText, Message msg)

Но не понятно как им пользоваться, куда посылается сообщение, кому, какой обработчик используется?

12
задан ilomambo 26 May 2012 в 12:58
поделиться