将片段的上下文传递给类并显示警告对话框

时间:2012-12-14 20:46:37

标签: android fragment

我目前正在开发一个Android项目,我遇到了上下文和AlertDialogs的问题。

我有一个扩展Fragment的类,它创建了一个名为Common的标准Java类的实例,该类具有从Fragment传递给它的上下文。在Common类中,我有一些代码来显示警告对话框,并根据用户单击的内容返回一个布尔值。

使用扩展Activity的标准类,我可以使用以下命令创建Common类的实例:

Common common = new Common(this);

然后我可以使用以下代码在此类中调用我的show alert对话框函数。

common.showYesNoDialog("This is my message", false);

上面的代码适用于标准Activity类。我的问题是这个。

在我的扩展片段的类中,我无法将this传递给公共类,所以我不得不使用以下代码:

Common common = new Common(getActivity().getApplicationContext());

我正常使用以下代码:

common.showYesNoDialog("This is my message", false);

当我调用上面的函数时,我收到以下错误:

FATAL EXCEPTION: main
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application.

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:5)

您应该使用getActivity()而不是getActivity().getApplicationContext(),因为getActivity()会返回一个Activity,它是Context的子类。