popwindow初始时弹出引发的Unable to add window --token null is not valid

今天在做项目的时候遇到了这个问题,当时我是这样写的

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		CommonUtils.initData(this);
		setContentView(R.layout.activity_search);
		mContext = this;
		httpInstance = new HttpInstance();
		initView();
		historyPop();
 historyPop.showAsDropDown(findViewById(R.id.search_layout));  
}



然后发现会报这个错误,这个错误 有可能是在activity之外
showAsDropDown,或者是在Activity的onCreate()函数里面调用了showAsDropDown,多半是后者,由于你的popupwindow要依附于一个activity,而activity的onCreate()还没执行完,没有pop可以弹出。

改成如下就好了,用一个线程或者在某个事件里进行。

private Handler popupHandler = new Handler(){  
	    @Override  
	    public void handleMessage(Message msg) {  
	        switch (msg.what) {  
	        case 0:  
	            historyPop.showAsDropDown(findViewById(R.id.search_layout));  
	            historyPop.update();  
	            break;  
	        }  
	    }  
	      
	};  

然后在onCreate方法中这样写

popupHandler.sendEmptyMessageDelayed(0, 100); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值