我正在开发一个 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 语句阻塞,直到用户按下其中一个按钮并将变量设置为正确的值。
我怎样才能让它工作。