Dialog崩溃App onClick

时间:2012-10-06 14:24:14

标签: java android android-dialog

我正在尝试在TextView的onClick方法中显示一个对话框。我使用日志在没有对话框的情况下测试了onClick,它可以工作。当我向其添加对话框时,如下所示:

Context context = getApplicationContext();
            Dialog d = new Dialog(context);
            d.setTitle("Test");
            TextView testField = new TextView(context);
            testField.setText("Success!");
            d.setContentView(testField);
            d.show();

这完全在textView的onClick方法中。我得到的例外说无法添加窗口 - 令牌null不适用于应用程序。

有人可以向我解释为什么这不起作用。我在这里有很多关于在an​​droid中获取异常的问题,答案总是与代码的顺序有关。是否有关于如何排序代码的参考?!

谢谢!

2 个答案:

答案 0 :(得分:0)

而不是Dialog d = new Dialog(context);

使用Dialog d = new Dialog(this);

getApplicationContext();获得的

上下文不应用于对话框。

有关详细信息,请参阅问题:

Dialog throwing "Unable to add window — token null is not for an application” with getApplication() as context

答案 1 :(得分:0)

在onClick()中创建Dialog时,请始终使用

void onClick(View v)
{
    Dialog d = new Dialog(v.getContext());
                          ^^^^^^^^^^^^^^
    TextView testField = new TextView(v.context);
    testField.setText("Success!");
    d.setContentView(testField);
    d.show();
}