我正在嘗試添加一個簡單的視圖作爲頁腳到ListView。 這樣做會引發ClassCastException
。 (「cannot be cast to android.widget.HeaderViewListAdapter
」)添加頁腳到ListView引發「不能轉換爲android.widget.HeaderViewListAdapter」
現在,在您將其標記爲無數個其他問題的副本之前,請繼續閱讀,您將明白爲什麼我要求幫助。
我瞭解在KitKat之前將頁眉或頁腳添加到ListView
的必要步驟。所述procedure必須是:
- 添加報頭和/或頁腳。
- 然後設置適配器。
這是使得ListView.setAdapter
可以確定適配器具有被包裹在一個HeaderViewListAdapter
,基於是否存在任何頁眉或頁腳。 這很簡單易懂。
我的問題是,即使我按照這個程序,我得到異常拋出!
我在兩個不同的地方使用我的ListView。
- 標準活動,其中列表是唯一顯示的視圖。
- 片段的ViewPager
我遵循相同的程序在兩種情況下,首先添加頁眉/頁腳,然後設置在適配器內部。
在Activity
這工作正常,一切按預期工作。
在Fragment
中,我得到ClassCastException
拋出。
下面是兩個實例的初始化代碼:
Activity
和Fragment
:
EndlessList list = (EndlessList) rootView.findViewById(R.id.EndlessListArea);
// Adds the Loading and Error footer
list.setupLoadingView();
list.setupErrorView();
// Sets up the Adapter for the list (View presentation and data management).
list.setAdapter(new listAdapter());
我需要幫助搞清楚爲什麼用Activity
的程序工作,但拋出一個異常,並Fragment
。
注:我甚至嘗試手動居然包裹適配器的HeaderViewListAdapter
,然後將它傳遞給setAdapter
方法,然後添加頁眉/頁腳。這擺脫了異常,但不會將頭/頁腳添加到我的Fragment中。代碼如下:
HeaderViewListAdapter adp = new HeaderViewListAdapter(null, null, adapter);
super.setAdapter(adp);