添加AlertDialog - 未定义的构造函数

时间:2012-08-06 14:02:56

标签: android android-alertdialog

我试图在我的应用程序中添加一个alertdialog而不是成功的10个小时,我认为这将是一个愚蠢的问题,但我真的很新,试图研究许多链接,如{{3 }}; AlertDialog - Not Working,但即使我仍有问题。

实际上,我每次基本都遇到同样的问题:

这里是我从链接中复制的代码来帮助我:

public void dbFail(){
        AlertDialog alertDialog = new AlertDialog.Builder(this).create();
        alertDialog.setTitle("Reset...");
        alertDialog.setMessage("Are you sure?");
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) {
              // here you can add functions
           }
        });
        alertDialog.show(); 
    }

并且问题在于:

构造函数AlertDialog.Builder(ConnectDB¹)未定义。

¹-这是我的背景名称

那么,我真的需要做什么?我没有看到有人在谈论实现这个构造函数......我是否需要在AlertDialog.Builder调用中实现一个方法,描述他应该做什么?


3 个答案:

答案 0 :(得分:1)

尝试更改:

new AlertDialog.Builder(this).create();

对此:

new AlertDialog.Builder(YourActivityClassName.this).create();

确保您在此处提供活动的上下文(不是应用程序上下文,即getApplicationContext())。不要与应用程序上下文活动上下文混淆,因为它们在初始化对象时都很重要。

答案 1 :(得分:1)

上下文必须是一个活动。

根据您的错误The constructor AlertDialog.Builder(ConnectDB) is undefined.来判断,我猜您是在尝试在某种与数据库相关的类中显示此AlertDialog。

您需要在活动中创建AlertDialog,或者需要将Activity传递给ConnectDB类,以便ConnectDB可以使用它来生成对话框。

答案 2 :(得分:0)

如果您尝试从另一个类显示警报对话框,则必须将该活动的实例传递给另一个类并在其上调用runOnUiThread方法。

以下是我的表现(游戏是活动):

game.runOnUiThread(new Runnable() {
            public void run() {

            builder = new AlertDialog.Builder(game);
            builder.setTitle("Network Error");
            builder.setMessage("Please connect to the internet");
            builder.setCancelable(false);
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                    game.finishGame();

                }
            });

            initialized = true;

            }

        });