0

我试图在 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 不适用于应用程序。

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

谢谢!

4

2 回答 2

0

代替Dialog d = new Dialog(context);

采用Dialog d = new Dialog(this);

从中获得的上下文getApplicationContext();不应用于对话。

有关更多信息,请参阅问题:

对话框抛出“无法添加窗口 - 令牌 null 不适用于应用程序”,getApplication() 作为上下文

于 2012-10-06T14:36:30.933 回答
0

当您在 onClick() 中创建对话框时,请始终使用

void onClick(View v)
{
    Dialog d = new Dialog(v.getContext());
                          ^^^^^^^^^^^^^^
    TextView testField = new TextView(v.context);
    testField.setText("Success!");
    d.setContentView(testField);
    d.show();
}
于 2012-10-06T14:40:42.673 回答