Похоже, нет простого способа заставить диалоговое окно оповещения возвращать простое значение.
Этот код не работает(переменная 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)
Но не понятно как им пользоваться, куда посылается сообщение, кому, какой обработчик используется?