我相信这是一个基本的问题,但我的研究没有发现有用的信息。我的新应用程序需要在某些情况下使用Yes/No对话框,但我不知道对话框如何适应应用程序的生命周期。例如,我想创建一个支持此类型结构的方法:
if (yesNoAlert("Title", "Do you want to try again?") == true) {
action1();
} else {
action2();
}
这个方法大致如下所示:
private boolean yesNoAlert(String title, String message) {
final boolean returnValue;
DialogInterface.OnClickListener dialogClickListener = new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
returnValue = true;
break;
case DialogInterface.BUTTON_NEGATIVE:
returnValue=false;
break;
}
}
};
alertbox = new AlertDialog.Builder(this);
alertbox.setMessage(message)
.setTitle(title)
.setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener)
.show();
}
...但是正如您所看到的,它还没有完成——有很多事情不太正确。我缺少的部分是如何知道对话框已经完成......有什么方法可以被利用,使应用程序能够意识到按钮已被按下?当然,BUTTON_POSITIVE和BUTTON_NEGATIVE操作会响应此操作,但我的问题是如何返回一个指示器,以便等待响应的代码将在action1()或action2()处重新开始,取决于响应。
目前,我看不出任何方法让我的应用程序确定这一点,甚至从那段代码中创建一个有效的方法/函数的方法都不存在。因此,我在生命周期中缺少了一些关键的部分。
我应该在哪里阅读这个?当然,在互联网上有大量关于此的信息,但对于我这样的相对新手来说,就像试图从消防栓中喝水。