似乎没有简单的方法可以让警报对话框返回一个简单的值。
此代码不起作用(无法从侦听器中设置答案变量,实际上它甚至无法编译)
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;
}
注意:方法是自包含的,即它不依赖于变量或外部构造,这一点很重要。只需调用它并得到你的答案,无论是对还是错。
那么该怎么办?这个返回真假的简单愿望似乎比它应得的要复杂得多。
此外,setButton 方法具有以下形式:
dialog.setButton(int buttonId, String buttonText, Message msg)
但是不清楚如何使用它,消息发送到哪里,发给谁,使用哪个处理程序?