DialogResult在普通的java类中返回结果

时间:2012-06-11 22:47:01

标签: android alertdialog

我正在开发一个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语句,直到用户按下其中一个按钮,同时将变量设置为正确的值。

我怎样才能让它发挥作用。

1 个答案:

答案 0 :(得分:0)

经过几个小时搜索谷歌页面的内部深度,我发现了Dialogs / AlertDialogs: How to "block execution" while dialog is up (.NET-style)

它正是我完成的工作并经过测试以确保没有ANR错误,但没有