解决popupWindow 的android.view.WindowManager$BadTokenException问题_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 解决popupWindow 的android.view.WindowManager$BadTokenException问题

解决popupWindow 的android.view.WindowManager$BadTokenException问题

 2013/9/7 21:12:47  king_tt  程序员俱乐部  我要评论(0)
  • 摘要:PopupWindow写在事件监听里面是不会出现这个异常的,当你不写在事件监听里面,希望Activity被创建就弹出Popupwindow,最典型应该就是视频的播放吧,如图,我觉得再多的文字也当不了图形形象,上面那一排就是一个popupWindow这时候如果你在onCreate就会出现WindowManager$BadTokenException异常,pupupWindow需要Activity获取到了焦点才能显示出来,也许你会想在onResume()方法让PopupWindow显示
  • 标签:android 解决 view 问题

PopupWindow 写在事件监听里面是不会出现这个异常的,当你不写在事件监听里面,希望Activity被创建就弹出Popupwindow,最典型应该就是视频的播放吧,如图,我觉得再多的文字也当不了图形形象,上面那一排就是一个popupWindow

这时候如果你在onCreate就会出现WindowManager$BadTokenException异常,pupupWindow需要Activity获取到了焦点才能显示出来,也许你会想在onResume()方法让PopupWindow显示,因为onResume()是Activity获取到了焦点回调的方法,事实上我也这么想过,但还是行不通,onResume()是刚开始获得焦点就调用这个方法,先执行完了onResume(),之后在执行onWindowFocusChanged()

?

class="java">   //the activity has Focus show popupwindow,else throws android.view.WindowManager$BadTokenException
	@Override
	public void onWindowFocusChanged(boolean hasFocus) {
		// TODO Auto-generated method stub
		super.onWindowFocusChanged(hasFocus);
		////有焦点的时候,让你的PopupWindow显示出来
		if(hasFocus){
			playerPopup.showAtLocation(mView, Gravity.TOP|Gravity.FILL, 0, 0);
		}
	}



?

?

发表评论
用户名: 匿名