所以在我的android应用程序中,我有一个帮助器类,它可以使用以下代码创建一个对话框:
public void CreateAlert(String title, String message)
{
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
// Setting Dialog Title
alertDialog.setTitle(title);
// Setting Dialog Message
alertDialog.setMessage(message);
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) { }
});
// Showing Alert Message
alertDialog.show();
}
在我的注册商活动中,我有一个运行特定任务的ASyncTask,然后使用以下函数处理一个布尔变量:
private void Process(boolean Success)
{
if(Success)
{
appHelper.CreateAlert("Success!", "Well Done!");
// Progress to the activity
startActivity( new Intent(context, Menu.class) );
getActivity().finish();
}
else
{
appHelper.CreateAlert("Failure!", "Please try again.");
}
}
但是从上面的代码可以看出,我想基于成功的结果开始一项活动。但是,我需要应用程序等待用户在进行下一个活动之前单击对话框上的“okay”按钮。
完成此任务的最佳方式是什么?
编辑:我应该注意这两个函数在不同的类中,CreateAlert在一个名为AppHelper的类中,其中Process在Registrar.class中,是一个活动。
答案 0 :(得分:1)
再次检查alertDialog' success
按钮
OK
的状态
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) {
if(Success)
{
// Progress to the activity
context.startActivity( new Intent(context, Menu.class) );
context.getActivity().finish();
}
else
{
// Don't do anything
}
});
并更新您的Process
,如下所示
private void Process(boolean Success)
{
if(Success)
{
appHelper.CreateAlert("Success!", "Well Done!");
}
else
{
appHelper.CreateAlert("Failure!", "Please try again.");
}
}