AlertBuilder显示了一个异常。DialogBox没有打开。

7 浏览
0 Comments

AlertBuilder显示了一个异常。DialogBox没有打开。

在下面的代码中,当mIndex为0时,我想要打开对话框。\n代码执行了 \'if\' 部分。但是没有打开对话框,而是显示了以下异常。\n代码:\n

mIndex = (mIndex+1)%mQuestionBank.length;
    if(mIndex == 0 )
    {
        Log.d("Quizzler", "Inside IF");
        AlertDialog.Builder alert = new AlertDialog.Builder(getApplicationContext());
        alert.setTitle("Game Over");
        alert.setCancelable(false);
        alert.setMessage("Your score is "+mScore);
        alert.setPositiveButton("Close Application", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();
            }
        });
        alert.show();
    }

\n异常:\n

FATAL EXCEPTION: main
                                                                  Process: com.londonappbrewery.quizzler, PID: 11560                                                                               android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
                                                                               at android.view.ViewRootImpl.setView(ViewRootImpl.java:714)
                                                                               at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
                                                                               at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
                                                                               at android.app.Dialog.show(Dialog.java:316)
                                                                               at android.app.AlertDialog$Builder.show(AlertDialog.java:1112)
                                                                               at com.londonappbrewery.quizzler.MainActivity.updateQuestion(MainActivity.java:100)
                                                                               at com.londonappbrewery.quizzler.MainActivity.access$100(MainActivity.java:16)
                                                                               at com.londonappbrewery.quizzler.MainActivity$1.onClick(MainActivity.java:69)
                                                                               at android.view.View.performClick(View.java:5609)
                                                                               at android.view.View$PerformClick.run(View.java:22263)
                                                                               at android.os.Handler.handleCallback(Handler.java:751)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                               at android.os.Looper.loop(Looper.java:154)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:6077)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

0
0 Comments

这段代码使用了AlertDialog.Builder来创建一个对话框,并设置了标题、消息和一个“关闭应用程序”的按钮。然后通过alert.create()方法创建了一个AlertDialog对象,并调用show()方法显示对话框。

然而,问题出现在“AlertDialog alertDialog = alert.create();”这一行。根据代码的编写风格,这段代码应该是在一个Activity的内部,即在一个继承自Activity的类中。如果在其他类中使用这段代码,就需要将"YourActivity"替换为正确的类名。

要解决这个问题,首先要确保这段代码是在一个Activity的内部使用的。其次,要确保使用的类名是正确的。如果以上两点都没有问题,那么可能是因为导入了错误的包或缺少了必要的依赖库。需要检查导入的包和依赖库是否正确,并根据需要进行修复。

总结一下,出现这个问题的原因是代码中使用了错误的类名或导入了错误的包或缺少了必要的依赖库。解决方法是确保代码在Activity的内部使用,并检查类名、导入的包和依赖库是否正确。

0
0 Comments

AlertBuilder显示异常。对话框未打开。

问题原因:在构建AlertBuilder时使用了错误的上下文引用。

解决方法:使用正确的上下文引用构建AlertBuilder。

代码修正如下:

new AlertDialog.Builder(MainActivity.this);

好了,代码运行正常。

0