cannotbecasttoandroid.widget.HeaderViewListAdapter

  发布日期:   2018-08-20
  最新修改:   2020-02-13
  阅读次数:   40 次

用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.

转载自:http://19910930zhao.blog.163.com/blog/static/182511493201392945036210/


   转载规则

《cannotbecasttoandroid.widget.HeaderViewListAdapter字》GajAngels 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。