Android确认对话框不等待用户
我这里有代码:Android确认对话框不等待用户,android,Android,我这里有代码: int flagconfirm; public void resultado(View v) { warning(); if(flagconfirm==0) return; finish(); } public void warning() { DialogInterface.OnClickListener dialogClickListener = new DialogIn
int flagconfirm;
public void resultado(View v)
{
warning();
if(flagconfirm==0)
return;
finish();
}
public void warning()
{
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int flag=0;
switch (which){
case DialogInterface.BUTTON_POSITIVE:
flagconfirm=1;
break;
case DialogInterface.BUTTON_NEGATIVE:
return;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Exit?").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
}
但问题是编译器调用函数并继续工作,而不是等待用户的回答。所以我需要点击按钮2次,然后接受2次。
有人能帮我吗?谢谢。等待用户输入是异步完成的,因此,当您创建并显示AlertDialog时,方法体的其余部分将继续执行。您必须停止执行(在GUI线程上执行时不好,现在就是这种情况),或者从侦听器调用某个方法。将您的结构修改为以下内容:
public void resultado(View v) {
warning();
}
dialogClickListener = ...{
int flag=0;
switch (which){
case DialogInterface.BUTTON_POSITIVE:
parsePositive();
break;
case DialogInterface.BUTTON_NEGATIVE:
parseNegative(dialog);
return;
} }
void parsePositive(){finish();}
void parseNegative(DialogInterface dialog){dialog.dismiss();}
为什么在显示对话框后调用finish()?它通常会关闭活动,这样会关闭对话框。如果flagconfirm为0,则不要执行finish()引用此链接…您能完成更多代码吗?我是安卓新手,很多人都不懂,我刚刚更新了我的答案。如果您需要这些简单主题的帮助,您应该至少学习基本Java,然后再转到Android。无论如何都要感谢这些帮助。
void parsePositive(){finish();}void parseNegative(DialogInterface dialog){dialog.dispose();}
在函数警告中吗?或者外部?好的,它几乎可以工作了,只是void parseNegative(DialogInterface dialog){dialog.dispose();}
在dialog.dispose()中给我一个错误代码>错误:无法解析方法dispose()