cannot be cast to android.widget.HeaderViewListAdapter

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.

轉自:http://blog.sina.com.cn/s/blog_48964b120101pkrf.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章