ListView添加FootView的部分问题和解决记录

一、

java.lang.ClassCastException: 自己的包名+Adapter名 cannot be cast to android.widget.HeaderViewListAdapter

出现场景:setAdapter后,由于业务需要,需要removeFootView,报如上异常。

解决方案:在初始化组件时(一般setAdapter都是写在组件初始化代码里的),先addFootView,若是一开始不需要显示footView,可在setAdapter调用后removeFootView即可。

这样setAdapter执行时会转换我们的adapter为HeaderViewListAdapter,后续相关操作就不会出现转化异常的问题了。

 

二、一开始FootView上的点击事件有效,remove再add,点击事件失效。

业务逻辑:搜索历史界面,footview是清除历史记录的按钮

出现场景:进入页面打开搜索历史,点击footview可以执行,接着在当前页面添加搜索,动态展示出搜索历史,尽管footview依旧能够显示出来,但此时点击footview,发现点击事件不再被触发。

解决方案:尽管FootView定义的是全局变量,但removeFootView后点击事件就会失效,因此每次addFootView时传入的footview需要重新实例化即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值