首先,我很清楚发生此错误是因为我试图通过不是Context
的{{1}}调用窗口/对话框。
但是没有任何解决方案。我的要求是;我有一个Activity
在普通JAVA类的方法中有自定义样式表。我想在加载Dialog
时从任何Activity
类调用该方法。
在我的Activity类中,我有以下代码集;
Dialog
然后在我的HomeClass中,我有以下代码集;
HomeClass homeClass = new HomeClass();
homeClass.showSplashScreen();
通过维护这个设计,有没有办法摆脱 WindowManager $ BadTokenException
谢谢
答案 0 :(得分:1)
我要修改你的代码,这对你有帮助......
HomeClass homeClass = new HomeClass(this);
homeClass.showSplashScreen();
在您的Home类中..添加参数构造函数..
public class Home {
private Context context;
public Home(Context context){
this.context = context;
}
public void showSplashScreen() {
splashDialog = new Dialog(context, R.style.SplashScreen);
splashDialog.setContentView(R.layout.splash_screen);
splashDialog.setCancelable(false);
splashDialog.show();
}
答案 1 :(得分:0)
将您的活动传递给showSplashScreen()方法......
这样做..
HomeClass homeClass = new HomeClass();
homeClass.showSplashScreen(Your Actvity);
在您的家庭课程中
public void showSplashScreen(Activity curActivity) {
splashDialog = new Dialog(curActivity, R.style.SplashScreen);
splashDialog.setContentView(R.layout.splash_screen);
splashDialog.setCancelable(false);
splashDialog.show();
}