我正在尝试在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中获取异常的问题,答案总是与代码的顺序有关。是否有关于如何排序代码的参考?!
谢谢!
答案 0 :(得分:0)
而不是Dialog d = new Dialog(context);
使用Dialog d = new Dialog(this);
getApplicationContext();
获得的上下文不应用于对话框。
有关详细信息,请参阅问题:
答案 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();
}