`
cb269267
  • 浏览: 25241 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

popupwindow使用之异常:unable to add window -- token null is not valid

 
阅读更多

使用popwindow中又碰到一个白痴问题,在此留作纪念,希望对大家有帮助

 

popupwindow之所以叫这个名字,肯定是要从某个地方弹出啦,但是从哪个地方呢?必须是指定一个view嘛

void android.widget.PopupWindow.showAtLocation(View parent, int gravity, int x, int y)

调用这个函数就能显示popupwindow了,但是有的同学会有幸碰到一个异常,关于这个异常的解释是unable to add window -- token null is not valid;is your activity running?

 

看起来就有点纳闷了,为啥呢?肯定是你showAtLocation第一个参数用不鸟啦,你有可能是在activity之外showAtLocation,或者是在Activity的onCreate()函数里面调用了showAtLocation,多半是后者,由于你的popupwindow要依附于一个activity,而activity的onCreate()还没执行完,哪来的popup让你弹出来嘛。

 

因此,你要做的就是让这个showAtLocation的调用再晚一点,下面网上找个一个解决方案,我把我的代码直接贴吧,还是代码可靠,神马都是bullshit!在activity类中添加handler

	private Handler popupHandler = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case 0:
				popupWindow.showAtLocation(findViewById(R.id.rlShowImage), Gravity.CENTER|Gravity.CENTER, 0, 0);
				popupWindow.update();
				break;
			}
		}
		
	};

 
然后再在onCreate()函数中添加

popupHandler.sendEmptyMessageDelayed(0, 1000);

 也就是增加一个延时的任务而已啦,简单有效。

 

分享到:
评论

相关推荐

    android dialog与popwindow之间的简单运用

    PopupWindow组件的使用问题,PopupWindow是一个阻塞对话框,如果你直接在Activity创建的方法中显示它,则会报错:android.view.WindowManager$BadTokenException:Unable to add window -- token null is not valid;...

    PopupWindow嵌套Demo

    通过以上这些注意事项和技巧,我们可以有效地解决"PopupWindow嵌套Demo"中遇到的"Unable to add window"异常,并实现功能完善的嵌套PopupWindow。在实际项目中,不断实践和优化,将使你的PopupWindow使用更加...

    Android开发解决popupWindow重叠报错问题

    ERROR/AndroidRuntime(888): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRoot$W@44ef1b68 is not valid; is your activity running? 报错的意思大概就是说...

    PopupWindow之显示顶层对话框代码

    7. 设置PopupWindow为顶层对话框:为了使PopupWindow显示在所有其他视图之上,你需要设置`FLAG_NOT_FOCUSABLE`和`FLAG_NOT_TOUCH_MODAL`标志,并且在需要时手动处理触摸事件。如果希望PopupWindow能够响应触摸事件,...

    android 之popupWindow的使用

    View popupView = LayoutInflater.from(context).inflate(R.layout.popup_window_layout, null); PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup....

    Android PopupWindow使用示例

    View popupView = inflater.inflate(R.layout.popup_window_layout, null); // 创建PopupWindow实例,并设置其宽度和高度 PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_...

    安卓popupwindow相关-仿微信popupwindow.zip

    View popupView = LayoutInflater.from(context).inflate(R.layout.popup_window, null); // 初始化PopupWindow PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ...

    Android PopupWindow使用

    View contentView = LayoutInflater.from(context).inflate(R.layout.popup_window, null); PopupWindow popupWindow = new PopupWindow(contentView, width, height); ``` 2. **设置属性**:可以设置...

    Android之用PopupWindow实现弹出菜单-IT计算机-毕业设计.zip

    本项目“Android之用PopupWindow实现弹出菜单”是一个源码示例,适合于毕业设计或移动开发App的学习。下面将详细介绍这个项目中的关键知识点。 1. **PopupWindow基础**: PopupWindow是Android中的一个类,它允许...

    PopupWindow 自定义窗口从屏幕底部上移-动画

    PopupWindow是Android开发中一个非常实用的组件,它允许我们创建一种浮动的、临时的UI,可以在用户界面上显示一些额外的信息或者交互功能。在给定的“PopupWindow 自定义窗口从屏幕底部上移-动画”示例中,开发者...

    安卓 PopupWindow 简单使用学习

    View popupView = inflater.inflate(R.layout.popup_window, null); // 初始化PopupWindow PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams....

    android的popupWindow使用

    本篇文章将详细介绍如何在Android应用中使用PopupWindow,并通过一个具体的案例来演示其基本用法。 首先,PopupWindow是Android SDK提供的一种轻量级的弹窗组件,相比Dialog,它的创建和显示更加灵活。PopupWindow...

    Android 多级PopupWindow的小demo.zip

    首先,PopupWindow是Android SDK中的一个类,它允许开发者创建一个可以浮动在Activity之上的窗口。通常用于实现下拉菜单、提示框等效果。与Dialog相比,PopupWindow更加灵活,可以在界面上任何位置显示,并且能够...

    安卓popupwindow相关-PopupWindow模仿UC底部Menu.rar

    本资源“安卓popupwindow相关-PopupWindow模仿UC底部Menu.rar”旨在帮助开发者了解如何使用PopupWindow来创建类似UC浏览器底部菜单的效果。 首先,我们来详细了解一下PopupWindow的基本概念。PopupWindow是Android ...

    Android应用源码之多级PopupWindow的小demo.zip

    在“Android应用源码之多级PopupWindow的小demo”项目中,开发者可能已经实现了上述步骤,并通过实际案例展示了如何在Android应用中创建和使用多级PopupWindow。通过学习和研究该项目,你可以更好地理解PopupWindow...

    博客《 PopUpWindow使用详解(一)——基本使用》对应源码

    在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一种浮现在当前Activity之上的窗口,用于显示临时的信息或者菜单。这篇博客《PopUpWindow使用详解(一)——基本使用》及其源码,旨在帮助开发者更好地...

    PopupWindow

    PopupWindow是Android开发中一个非常重要的组件,它用于在用户界面上显示临时的弹出式视图。这个组件可以用来创建浮动菜单、提示信息或者在主界面之上展示其他交互元素。在`...

    Android应用源码之之用PopupWindow实现弹出菜单-IT计算机-毕业设计.zip

    这个“Android应用源码之之用PopupWindow实现弹出菜单”的项目,显然是为了教授如何在毕业设计中运用PopupWindow来创建动态的用户交互界面。 首先,PopupWindow是Android SDK提供的一种轻量级窗口,它可以浮现在...

    PopupWindow的使用

    PopupWindow是Android开发中一个非常实用的组件,它允许开发者创建弹出式窗口,通常用于在主界面之上显示一些临时信息或者提供附加操作。在本文中,我们将详细探讨PopupWindow的使用方法,包括其基本概念、创建过程...

    android popupwindowdemo

    在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一种浮现在当前Activity之上的窗口,用于展示临时信息或提供交互操作。本项目“android popupwindowdemo”显然是一个示例,旨在帮助开发者理解并掌握...

Global site tag (gtag.js) - Google Analytics