Tôi đã viết một hàm có giá trị trả về kiểu int, và trong hàm này tôi cần bật lên một AlertDialog bằng hai nút. Khi nút "Có" được nhấp, hàm trả về 0 và nút "Không" trả về -1.AlertDialog trong một hàm có giá trị trả về
public int Func(){
final AlertDialog d=new AlertDialog.Builder(mContext).setTitle("Warning").setCancelable(false).setMessage
(alert)
.setPositiveButton("Yes",mListener).setNegativeButton("No",mListener).create();
d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
d.show();
if(mWhich.getWhich()==-1) //the "yes" button was clicked
return 0;
else //the "no" button was clicked
return -1;
}
mWhich là một lớp được sử dụng để ghi lại các lựa chọn sử dụng
private DialogInterface.OnClickListener mListener =
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mWhich.setWhich(which);
}
};
Bây giờ vấn đề là mã
if(mWhich.getWhich()==-1)
return 0;
else
return -1;
được thực hiện trước khi người dùng nhấp vào yes hoặc no nút, làm thế nào tôi nên làm gì ??
những gì bạn nhận được khi nút Có hoặc Không được nhấn khi chạy mã hiện tại –
lấy biến số nguyên trên toàn cầu và gán giá trị trong đó (0 hoặc 1) và sau đó kiểm tra giá trị của nó. –
Hộp thoại cảnh báo KHÔNG PHẢI là phương thức. – Doomsknight