我想显示一个警告对话框,并获取用户是否运行AsyncTask的输入。然而,无论如何AsyncTask都会运行,即使我把它放在if语句中也是如此。有谁知道为什么会这样?这是我的代码:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Boolean b = false;
AlertDialog.Builder alertbox = new AlertDialog.Builder(
ThisScreen.this);
alertbox.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
b = true;
}
});
alertbox.setPositiveButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
b = false;
}
});
alertbox.setTitle("Title");
alertbox
.setMessage("Continue?");
alertbox.show();
if(b)
new doAsyncTask().execute;
}
});
答案 0 :(得分:2)
我不知道它是否有任何区别,但合乎逻辑的是使用setNegativeButton()方法设置无按钮。
答案 1 :(得分:1)
您应该移动代码以在
中运行任务alertbox.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
runMyDoAsyncTask(); // <-- here
}
});
btw我不确定你提供的代码是否会编译:)