解决Listview页脚RemoveFooterView报java.lang.ClassCastException错问题
发布日期:2021-10-17 15:07:07
浏览次数:1
分类:技术文章
本文共 868 字,大约阅读时间需要 2 分钟。
如题,在做ListView滚动到底部时自动加载下一页数据时出现了错误,困扰了还挺久的,网上搜了不少资料,但是还是没明白到底错在哪里。
今天又在处理这个问题的时候突然之间悟出来了。 先看下ListView的setAdapter方法里的部分代码:- public void setAdapter(ListAdapter adapter) {
- ............
- if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) {
- mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos, adapter);
- } else {
- mAdapter = adapter;
- }
- ............
- }
看出点什么没,代码的大致意思是如果ListView没有headerView或者footerView的时候,与listView相关联的Adapter就是传进来的参数Adapter,如果有,就将原来的Adapter包装成HeaderViewListAdapter。
至此大致明白了自己错在哪里了,因为一开始第一页的时候用不到footerView,所以一开始创建的Adapter并不是HeaderViewListAdapter,然后在加载下一页的时候有添加和删除footerView的操作,但是当前的Adapter并不是HeaderViewListAdapter,导致错误发生,报了java.lang.ClassCastException错误。 明白了错误,也就有了相应的解决方案了。在setAdapter执行前如果之后需要headerView或者footerView的,可以先add到ListView里,如果不需要一开始的时候显示,可以在setAdapter后立刻remove掉就好了,这样子处理主要是为了让创建的是Adapter是HeaderViewListAdapter。转载地址:https://blog.csdn.net/tenggangren/article/details/8632138 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月03日 10时37分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Unity 之 实用工具类分享
2019-04-26
C#设计模式 之 抽象工厂模式
2019-04-26
C#设计模式 之 生成器模式
2019-04-26
C#设计模式 之 工厂方法模式
2019-04-26
C#设计模式 之 原型模式
2019-04-26
写好代码的七条好习惯
2019-04-26
VS 显示方法引用的设置方法
2019-04-26
不是吧?你不知道CSDN浏览器助手?快来看看,助你一“键”封神!
2019-04-26
零基础教你Unity接入IOS原生本地推送 【文末源码】
2019-04-26
Unity 之 记录打包IOS首次安装启动弹窗通知权限问题
2019-04-26
零基础入门 Unity 之 UGUI 详解专栏 | 寻找C站宝藏
2019-04-26
Unity 之 查找游戏物体的几种方式解析
2019-04-26
C# String和StringBuilder简介
2019-04-26
UGUI 按钮事件案例
2019-04-26
简单直白的方式了解A*算法
2019-04-26
Wheel Joint 2D 属性面板简介
2019-04-26
Unity制作赛车游戏(无尽版)源码解析 和 Whell joint 2D组件的使用
2019-04-26
C# 匿名方法和Lambda表达式
2019-04-26
C语言 快速排序函数
2019-04-26