您的位置:首页 > 运维架构

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

2017-01-10 14:53 681 查看
今天在做项目的时候遇到了这个问题,当时我是这样写的

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); 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐