一、
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需要重新实例化即可。