2012-10-04 17 views
3

可能重複:
Adapter class cast exception when removing a Footer view?適配器類轉換異常從ListView中卸下頁腳視圖

這裏是日誌:

java.lang.ClassCastException: com.test.MyAdapter cannot be caste to android.widget.HeaderViewListAdapter 
at android.widget.ListView.removeFooterView(ListView.java:387) 
at com.test.MyActivity.removeFooterViews() 

MyAdapter是多重表適配器。不真的看到刪除頁腳與將我的適配器投射到android.widget.HeaderViewListAdapter所做的事情有關嗎?這是從哪裏來的?

這裏所發生的一切在MyActivity.removeFooterViews()

 if (myFooterView != null) 
     {  
        myListView.removeFooterView(myFooterView); 
     } 

回答

4

我們可以看到,導致這個而不僅僅是異常消息的代碼?如果我不得不猜測,我會說你沿着ListView.getAdapter()的方向撥打了一些東西,並將返回的ListAdapter轉換爲當你使用ListView.setAdapter()時使用的類型。

這是一個常見的錯誤。但是,請務必記住,您設置的ListAdapterListView返回給您的不一樣,因爲它使用引擎蓋下的適配器來支持頁眉和頁腳。

+0

導致它的代碼是myListView.removeFooterView(myFooterView)多數民衆贊成它。 –

+0

我已更新它。 –

+0

我認爲這是問題的一部分。當您要求ListView刪除頁腳時,它會假定頁腳已被首先設置。如果頁腳被設置,那麼ListView的內部適配器將是HeaderViewListAdapter類型,因此它將轉換到removeFooterView()內部。但是,如果您尚未設置頁腳,那麼ListView將保留您的MyAdapter實例。因此,轉換失敗。 – zienkikk

相關問題