Android等待AlertDialog中的用户输入继续

时间:2013-09-16 14:46:10

标签: android wait android-alertdialog

我已经在这里讨论过这个问题,但似乎无法理解如何继续。

在我的onCreate中,我有代码检查它是否是应用程序firstRun = getPref.getBoolean("firstRun", true);的第一次运行。如果是第一次运行应用程序,则会显示一个警告对话框,其中显示没有安装数据库,用户按下OK按钮下载数据库。如果没有错误而不是pref.putBoolean("firstRun", false);和alertdialog,则下次运行时不会显示错误。

现在我想介绍一个ChangeLog,它只在安装或升级应用程序后的第一次运行时显示。由于更改日志必须在firstRun检查之前,我应该等待用户按下changelog alertdialog OK按钮。

我已经为changelog创建了代码(它按预期工作),在那段代码之后,我有firstRun的代码。问题是显示了更改日志,但是,如果它实际上是应用程序的第一次运行,则firstRun alertdialog与changelog alertdialog重叠。

所以,这是我的问题。

最好等待什么才能使firstRun代码仅在用户按下changelog alertdialog上的OK按钮后执行?

3 个答案:

答案 0 :(得分:2)

据我所知,changeLog将在应用的每次首次运行时运行。因此,您可以覆盖onDismiss()的{​​{1}}。然后只需将代码放入changeLog AlertDialog检查

firstRun

答案 1 :(得分:0)

取另一个布尔变量isChengelog并将其设置为false,当用户单击ChangeLog对话框时将其设置为true并将其保存在首选项中。进一步的代码检查

if(isChengelog){
  //Show firstRun Aleret dialog
} 
else{
 //Not Show firstRun Aleret dialog
}

答案 2 :(得分:0)

像Mukesh建议的那样,但也将其放在你的更改日志对话框的回调中。

// On "OK clicked"
public void onClick(DialogInterface dialog, int id){
    pref.putBoolean("changelog", false);
    showFirstRunDialog();
}

定义一个便利功能以显示第一个运行对话框:

public void showFirstRunDialog(){
    if(getPref.getBoolean("firstRun", true);) {
        //show dialog
    }
}

确保包括Mukesh关于启动的建议:

if(getPref.getBoolean("changelog", true);){
  //Show changelog dialog
} 
else{
   showFirstRunDialog();
}