似乎没有简单的方法获得一个警告框来返回一个简单的值。
下边的代码不起作用(答案变量不能设置在监听器里,事实上它甚至都没有编译)
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。
所以,应该怎么做?简单的想法就是返回true或者是false,但是这似乎比它自己来获得这些值复杂得多。
而且,setButton有这个表单:
dialog.setButton(int buttonId, String buttonText, Message msg)
但是不知道怎么用到它,这个消息应该发到哪,发给谁,哪个处理器是被用到的?