解决: android.view.WindowManager BadTokenException:Unable to add Window.Is your activity running?

额,问题比较难描述,报错是上面的信息

出现的bug是使用AutoCompleteTextView控件,在进入activity之后删除默认框中的text,之后点击返回键,再次进入该activity时报错

报错位置在控件的Listener监控上,view.showDropDown()方法上报该错误


查资料最后说是因为lisener在设置记录选项adapter的时候绑定的是当前的activity,退出后再次进入时,旧的activity已经被销毁了,所以绑定的activity被销毁了才产生is your activity running的错误


解决方法:

设定adapter绑定的时候,原来绑定的是当前的activity,只要换成其父类整个程序即可,使用getParent()代替this就可以了

                                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                                            //this,
                                            getParent(),
                                            android.R.layout.simple_dropdown_item_1line,
                                            codes);



ATTENTION!!!!

刚才发现一个问题,如果按照上面描述的进行初始化,在调用AutoCompleteTextView控件时,输入字符后可能导致Adapter初始化失败

所以getParent()方法不能用,应该改为 getApplicationContext(),进行Adapter的初始化


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值