cannot be cast to android.widget.HeaderViewListAdapter
用listview设置header或footerview,通常发生该异常。
如果你没有发生,那是碰巧。但是你可能不知道原因。
如果在listview.setAdapter(adapter)方法之后 添加头或尾view,
即addHeaderView或 addFooterView,
那么在你listView.removeHearderView或removeFooterView时就会报该异常。
在Listview的源码中如果设置了adapter,那么它会强转成HeaderViewListAdapter,所以就会报错。
if (mAdapter != null && ((HeaderViewListAdapter) mAdapter).removeHeader(v)) {
if (mDataSetObserver != null) {
mDataSetObserver.onChanged();
}
result = true;
}
。
所以你一定要在setAdapter之前调用addHeaderView或addFooterVeiw.
本文解析了在Android开发中使用ListView添加头或尾布局时出现的cannotbecasttoandroid.widget.HeaderViewListAdapter异常的原因及解决方案。强调了在设置适配器前添加头尾布局的重要性。
1794

被折叠的 条评论
为什么被折叠?



