从多用途对话框android返回结果

时间:2014-03-28 05:44:20

标签: java android

所以在我的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中,是一个活动。

1 个答案:

答案 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.");
    }
}