ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android中的WindowManager $BadTokenException

2019-10-09 07:29:22  阅读:184  来源: 互联网

标签:android-alertdialog android


首先,我很清楚会发生此错误,因为我正在尝试通过不是活动的上下文调用窗口/对话框.

但是没有任何解决方案.我的要求是;我在普通JAVA类的方法中有一个带有自定义样式表的对话框.当我需要加载Dialog时,我想从任何Activity类中调用该方法.

在我的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();
}

通过保持这种设计,是否有任何方法可以摆脱WindowManager $BadTokenException

谢谢

解决方法:

我将修改您的代码,这可能对您有所帮助…

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();
}

标签:android-alertdialog,android
来源: https://codeday.me/bug/20191009/1877611.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有