Có vẻ như không có cách nào dễ dàng để có được hộp thoại Alert để trả về một giá trị đơn giản.
này đang không hoạt động (các câu trả lời biến không thể được thiết lập từ bên trong người nghe, trên thực tế nó thậm chí không biên dịch)Hộp thoại xác nhận Android trả về true hoặc false
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;
}
Chú ý: Điều quan trọng là phương pháp này là tự chứa, tức là, nó không phụ thuộc vào các biến hoặc cấu trúc bên ngoài vào nó. Chỉ cần gọi nó và nhận được câu trả lời của bạn, đúng hay sai.
Vì vậy, phải làm gì? Mong muốn đơn giản này là trả lại đúng hoặc false dường như phức tạp hơn nhiều so với giá trị của nó.
Ngoài ra, phương pháp setButton có dạng:
dialog.setButton(int buttonId, String buttonText, Message msg)
Nhưng nó không phải là rõ ràng làm thế nào để sử dụng nó, mà là meesage gửi đến, cho ai, mà xử lý được sử dụng?
Bạn đã bao giờ tìm được giải pháp tốt hơn chưa? – Lion789
@ Lion789 Như tôi đã nói, đây không phải là giải pháp thực sự và tôi đã giải thích lý do tại sao với hệ điều hành Android hiện tại không thể có linh hồn. Vì vậy, trong ngắn hạn, tôi đã không tìm thấy một giải pháp tốt hơn. Theo Android, bạn nên đặt mã của mình bên trong trình nghe onClick() cho hộp thoại. Đó là cách duy nhất để thực hiện nó sau khi bạn đóng hộp thoại. – ilomambo
iLomambo Bạn đã thử một trong những đầu với gọi Runnable – Lion789