方法不调用警报类

时间:2011-03-03 14:14:37

标签: android

我在主类中设置了Alert方法。然后在主类中的onclick中调用它,如:

alertbox.show();

我需要一些警告对话框来在我的应用程序中设置验证。

我有alertdialog代码:

final AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
    alertDialog = new AlertDialog.Builder(this).create();
    alertbox.setTitle("Warning");
    alertbox.setMessage("Game May End");
    alertbox.setPositiveButton("CONTINUE",
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    setContentView(webview);


                }
            });

    alertbox.setNegativeButton("CANCEL",
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });

    alertbox.setIcon(R.drawable.icon);

在主类中已有的几个警告对话框使得类太大了。我想把这个类分成一个mainvalidation类。然后在主类中调用此警报对话框

mainvalidation.alertbox.show();

有人可以帮我解决这个问题。感谢

编辑:

我已经尝试将它放入另一个类并添加静态。但它表示只允许final,当我使用static时,alertbox会显示错误:

        public class MainValidation extends Activity {

    static AlertDialog alertbox;
    static AlertDialog alertDialog; 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final static AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
            alertDialog = new AlertDialog.Builder(this).create();

        alertbox.setTitle("Warning");
        alertbox.setMessage("Game May End");
        alertbox.setPositiveButton("CONTINUE",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {



                    }
                });

        alertbox.setNegativeButton("CANCEL",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

        alertDialog.setIcon(R.drawable.icon);


}
}

请帮忙,谢谢

2 个答案:

答案 0 :(得分:0)

您只想创建一个名为mainvalidation的新类,然后将您的项目声明为:

final static AlertDialog.Builder alertbox

然后你可以根据需要调用你的方法。

答案 1 :(得分:0)

使用DialogTest之类的课程。

显示对话框:DialogTest.showDialog(ctx); // ctx是您要调用的上下文。

Dismiss对话框:DialogTest.dismissDialog();

public class DialogTest
{
    private static AlertDialog  alertDialog;

    public static void showDialog(Context ctx)
    {
        final AlertDialog.Builder alertbox = new AlertDialog.Builder(ctx);
        alertbox.setTitle("Warning");
        alertbox.setMessage("Game May End");
        alertbox.setPositiveButton("CONTINUE", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which)
            {}
        });
        alertbox.setNegativeButton("CANCEL", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which)
            {}
        });
        alertDialog = alertbox.create();
        alertDialog.setIcon(R.drawable.icon);
        alertDialog.show();
    }

    public static void dismissDialog()
    {
        alertDialog.dismiss();
    }
}