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