Android-ListView的removeFooterView方法报java.lang.ClassCastException错误
来源:互联网 发布:北京赛车2468技巧算法 编辑:程序博客网 时间:2024/05/18 01:35
在做ListView滚动到底部时自动加载下一页数据时出现了错误,困扰了还挺久的,网上搜了不少资料,但是还是没明白到底错在哪里。
今天又在处理这个问题的时候突然之间悟出来了。
看出点什么没,代码的大致意思是如果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。
今天又在处理这个问题的时候突然之间悟出来了。
先看下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。
0 0
- Android-ListView的removeFooterView方法报java.lang.ClassCastException错误
- Android-ListView的removeFooterView方法报java.lang.ClassCastException错误
- Android-ListView的removeFooterView方法报java.lang.ClassCastException错误
- ListView的removeFooterView方法报java.lang.ClassCastException错误
- 解决Listview页脚RemoveFooterView报java.lang.ClassCastException错问题
- 解决Listview页脚RemoveFooterView报java.lang.ClassCastException错问题
- 解决Listview页脚RemoveFooterView报java.lang.ClassCastException错问题
- ListView在removeFooterView时报java.lang.ClassCastException错问题
- 【Android 开发遇错】Listview 报错 java.lang.ClassCastException:
- 用BaseAdapter时,在ListView的onItemClick方法狂报 ClassCastException:java.lang.Boolean
- android removeFooterView classCastException 原因
- java.lang.classcastexception:android.widget.TextView错误
- 有关Android中的java.lang.ClassCastException错误
- java.lang.ClassCastException错误
- hibernate 的java.lang.ClassCastException 错误
- weblogic报java.lang.ClassCastException
- listView.removeFooterView(View)报空指针的奇异问题
- java.lang.ClassCastException: 错误解析
- 文本框获取焦点,将光标移动到最末端及普通上传下载
- Enterprise Manager 无法连接到数据库实例
- C++primer plus第六版课后编程题答案8.2
- PowerDesigner反向工程 mysql
- android开发中常用的一些工具集介绍List、ArrayList、Map、HashMap
- Android-ListView的removeFooterView方法报java.lang.ClassCastException错误
- 支玉行
- 3组合框(Combo Box)和列表框(List Box)
- 声明式编程和命令式编程
- redis是一个key-value存储系统
- C/C++中extern关键字详解
- SecureCRT远程控制ubuntu
- 打包jar文件(包含第三方库)
- Ubuntu 12.04 中安装和设置 Samba 实现网上邻居共享