我正在开发一个android项目,我试图在一个单独的普通java类中显示一个AlertDialog并返回用户输入的结果。我可以很好地显示对话框,但我遇到的问题是它总是在对话框按下其中一个按钮之前返回值。
下面是调用标准java类中的函数以显示对话框
的代码private void showDiagreeError()
{
Common common = new Common(this);
boolean dialogResult = common.showYesNoDialog();
Toast.makeText(getApplicationContext(), "Result: " + dialogResult, Toast.LENGTH_LONG).show();
}
以下是显示实际对话的代码
public boolean showYesNoDialog()
{
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Are you sure you do not want to agree to the terms, if you choose not to, you cannot use Boardies Password Manager")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialogResult = true;
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialogResult = false;
}
});
AlertDialog alert = builder.create();
alert.show();
return dialogResult;
}
dialogResult是一个在整个类中可见的全局变量,设置为false。一旦显示对话框,就会显示toast消息,显示结果为false,但我希望阻止return语句,直到用户按下其中一个按钮,同时将变量设置为正确的值。
我怎样才能让它发挥作用。
答案 0 :(得分:0)
经过几个小时搜索谷歌页面的内部深度,我发现了Dialogs / AlertDialogs: How to "block execution" while dialog is up (.NET-style)。
它正是我完成的工作并经过测试以确保没有ANR错误,但没有