2012-05-29 81 views

回答

17

如果通過'標題'表示使用addHeaderView(...)方法中的任何一種方法添加的實際標題,則可以使用getHeaderViewsCount()簡單檢索添加標題的數量。

或者,如果我沒有記錯,ListView會將其適配器包含在HeaderViewListAdapter中,前提是它包含頁眉和/或頁腳。您可以使用其getHeadersCount()檢索與上述相同的號碼。


編輯:如果您想檢查特定的頭是否被添加,你應該能夠查詢HeaderViewListAdapter了點。你需要一些標準來檢查。

例如,如果有3頭在你的ListView,您可以通過前三個項目迭代(你也許可以從HeaderListViewAdapter抓住他們直接或使用ListViewgetItemAtPosition(...)法),並查看是否有匹配標準。執行此「匹配」的最簡單方法可能是使用addHeaderView(...)方法添加標題,該方法也需要參數Object。你可以提供基本的任何東西來區分多個標題,顯然只要數據對象不同。例如。你可以傳入一個字符串。

有了這些數據,您可以撥打getItem(...)/getItemAtPosition(...)查找前3個位置,並檢查返回的內容。爲數據使用字符串的好處是每個Java對象都實現了一個toString()方法,然後您可以利用該方法進行直接的比較。

或者,您可以使用反射來獲取實際的mHeaderViewInfos成員變量(它只是一個​​3210),並將其用於條件邏輯。

+0

酷我不知道那種方法,有用的知道。但是,我的一些ListViews將包含多個標頭。有沒有一種方法可以判斷它們是否包含特定的頭文件? – Matthew

+0

對,我其實可以從問題標題中挑選出來。無論如何,請參閱我的原始答案的補充。這應該可以幫助你。 –

+0

感謝您的更新迴應。這聽起來像是一個好方法。或者,我已經採取了非常簡單的方法,只要我調用addHeaderView(v)並在刪除標題視圖時清除該標誌,就將布爾標誌'headerXAdded'設置爲true。 – Matthew

相關問題