似乎没有一种简单的方法可以使警告对话框返回一个简单的值。
这段代码无法工作(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)
但是不清楚如何使用它,消息发送到哪里,发给谁,使用哪个处理程序?
doClick()
后,在onClick()
方法中放置一些代码以检查用户对DialogHandler
对话框的响应,并查看该代码执行是否等待对话框关闭。我认为不会。 - ilomambo