首先,我很清楚地知道,这个错误发生,因为我试图调用窗口/通过一个对话框Context
,是不是一个Activity
。
但是,是不是有什么解决办法了这一点。 我的要求; 我有一个Dialog
使用自定义样式表在一个普通的Java类的方法。 我想从任何该方法Activity
类,当我需要加载Dialog
。
在我的Activity类我有下面的代码集;
HomeClass homeClass = new HomeClass();
homeClass.showSplashScreen();
然后在我的HomeClass我有以下的代码集;
public void showSplashScreen() {
splashDialog = new Dialog(HomeActivity.getAppContext(), R.style.SplashScreen);
splashDialog.setContentView(R.layout.splash_screen);
splashDialog.setCancelable(false);
splashDialog.show();
}
通过保持这样的设计,有没有什么办法来摆脱窗口管理器,$ BadTokenException的
谢谢
我要修改你的代码,也许对你有帮助...
HomeClass homeClass = new HomeClass(this);
homeClass.showSplashScreen();
在您的家类..添加参数的构造函数..
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();
}
您通过活动来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();
}