addHeaderView()异常 —— setAdapter has already been called
本博文为转载,由于找不到第一作者所以只能留下我转自的地址:
http://blog.csdn.net/shaoyezhangliwei/article/details/50385912
异常提示:java.lang.IllegalStateException: Cannot add header view to list – setAdapter has already been called.
产生原因:addHeaderView()调用在setAdapter()之后,并且该代码运行在Android4.3之前的系统版本。Android SDK与API Level对应表
我们来看看(Android4.3)API-18 和 (Android4.2)API-17的Listview代码片段:
API-18
public void addHeaderView(View v, Object data, boolean isSelectable) { final FixedViewInfo info = new FixedViewInfo(); info.view = v; info.data = data; info.isSelectable = isSelectable; mHeaderViewInfos.add(info); // Wrap the adapter if it wasn't already wrapped. if (mAdapter != null) { if (!(mAdapter instanceof HeaderViewListAdapter)) { mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos, mAdapter); } // In the case of re-adding a header view, or adding one later on, // we need to notify the observer. if (mDataSetObserver != null) { mDataSetObserver.onChanged(); } }
}
API-17
public void addHeaderView(View v, Object data, boolean isSelectable) { if (mAdapter != null && ! (mAdapter instanceof HeaderViewListAdapter)) { throw new IllegalStateException( "Cannot add header view to list -- setAdapter has already been called."); } FixedViewInfo info = new FixedViewInfo(); info.view = v; info.data = data; info.isSelectable = isSelectable; mHeaderViewInfos.add(info); // in the case of re-adding a header view, or adding one later on, // we need to notify the observer if (mAdapter != null && mDataSetObserver != null) { mDataSetObserver.onChanged(); }
}
在API-17中,假如adapter不为空,则会直接抛出异常,而在API-18中则做了相关的优化。
建议
木有建设性的提议,只能提醒大家,目前市面上主流的Android系统还是Android4.3以下版本,所以在使用addHeaderView()要注意这一点。
转载于:https://www.cnblogs.com/codenoodles/p/6421165.html
addHeaderView()异常 —— setAdapter has already been called相关推荐
- 当ListView有Header时,onItemClick里的position不正确
当给ListView加了一个HeaderView后(代码如下),我们发现,onItemClick方法里的position参数的值不是我们所期望的,比如点击ListView的第一行,我们期望的posit ...
- ListView setAdapter has already been called 异常
本文参考:http://blog.csdn.net/androiddevelop/article/details/8474939 异常提示:Java.lang.IllegalStateExceptio ...
- java getitemcount_RecyclerView.Adapter中的getItemCount() 返回数组的size是出现异常?
1.问题描述:RecyclerView.Adapter中的getItemCount() 返回数组的size是出现异常.网络用的是okhttp,数据库框架是litepal,功能是从网络上获取JSON数据 ...
- Android listview addHeaderView 和 addFooterView 详解
addHeaderView()方法:主要是向listView的头部添加布局 addFooterView()方法:主要是向listView的底部添加布局 需要注意的是添加布局的时候应该添加从父容器开始添 ...
- android设置错误页面,Android ViewPager设置当前项目/页面时抛出IndexOutOfBounds异常
我有一个ViewPager有三个项目.我试图设置ViewPager查看最右边的页面(这将是第二个元素).这是返回IndexOutOfBounds异常,虽然我知道索引应该在边界.这是确切的堆栈: 02- ...
- ViewPager异常,对ViewPager源码分析
今天遇到以下异常: java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's cont ...
- Android 天气APP(十四)修复UI显示异常、优化业务代码逻辑、增加详情天气显示
上一篇:Android 天气APP(十三)仿微信弹窗(右上角加号点击弹窗效果).自定义背景图片.UI优化调整 添加管理城市 新版------------------- 一.添加管理城市页面 二.沉浸式 ...
- 南京学思XSuperNest使用addHeaderView注意事项
在做学思钢板管理系统的项目中用到了addHeaderView,现在把注意事项记下来 1.item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内的 ...
- method ‘void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)‘ on a null object refe
异常产生环境 在android 使用dialog 引入Spinner 控件时产生异常 异常描述 Caused by: java.lang.reflect.InvocationTargetExcepti ...
最新文章
- Xcode没有pch文件
- HTTP通信协议的组成
- python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink
- linux shell 博客,【博客侠】Linux Shell脚本系列:开始上手(1)
- 20.校准相机——直接线性校准不均匀,直接线性校准变换,几何误差_3
- Docker 以 docker 方式运行 jenkins
- Scala入门(2)
- html+JS+Jquery实现视频/图片上传并预览
- 进阶篇: ramdump分析--9 ram dump文件种类
- python勒索病毒代码_勒索病毒GandCrab-v5.04完整分析
- 淘宝自动查券找券返利机器人搭建教程
- app 手机网页一些小知识
- codewars体验
- 这些信贷数据埋点中不得不知的埋点知识
- 物理层(网线)、数据链路层(交换机)、网络层(IP协议、ARP协议、ICMP协议、路由器)、VLAN(虚拟局域网)、HSRP协议、ACL、NAT
- 单词 2012-01-19
- Power BI项目之某公司内部数据分析
- 通过Hyper-V的方式快速安装Linux虚拟机
- 1024程序员节,向改变世界的程序员致敬
- 加班两年只赚2千块:低姿态的人,挣不了大钱
热门文章
- ExtJS grid简单应用之 展示JSON数据
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。
- IT项目十大灾难(转载)
- Leetcode 136. 只出现一次的数字 解题思路及C++实现
- Leetcode 376. 摆动序列 解题思路及C++实现
- Mac 技术篇-Oracle数据库官方连接工具SQL Developer的安装与连接演示
- CTFshow 文件上传 web153
- CTFshow php特性 web144
- Centos下本地连接postgresql时出现认证错误的问题
- 【POJ1321棋盘问题】【poj2251Dungeon Master】【poj3278Catch That Cow】【poj1426Find The Multi】