我試過使用ListView.indexOfChild(View view)方法來檢查ListView是否包含指定的標題視圖,但有時它會在ListView實際包含指定標題時返回-1。有沒有更好的方法來檢查這個?如何檢查ListView是否包含指定的頭文件?
5
A
回答
17
如果通過'標題'表示使用addHeaderView(...)
方法中的任何一種方法添加的實際標題,則可以使用getHeaderViewsCount()
簡單檢索添加標題的數量。
或者,如果我沒有記錯,ListView
會將其適配器包含在HeaderViewListAdapter
中,前提是它包含頁眉和/或頁腳。您可以使用其getHeadersCount()
檢索與上述相同的號碼。
編輯:如果您想檢查特定的頭是否被添加,你應該能夠查詢HeaderViewListAdapter
了點。你需要一些標準來檢查。
例如,如果有3頭在你的ListView
,您可以通過前三個項目迭代(你也許可以從HeaderListViewAdapter
抓住他們直接或使用ListView
的getItemAtPosition(...)
法),並查看是否有匹配標準。執行此「匹配」的最簡單方法可能是使用addHeaderView(...)
方法添加標題,該方法也需要參數Object
。你可以提供基本的任何東西來區分多個標題,顯然只要數據對象不同。例如。你可以傳入一個字符串。
有了這些數據,您可以撥打getItem(...)
/getItemAtPosition(...)
查找前3個位置,並檢查返回的內容。爲數據使用字符串的好處是每個Java對象都實現了一個toString()
方法,然後您可以利用該方法進行直接的比較。
或者,您可以使用反射來獲取實際的mHeaderViewInfos
成員變量(它只是一個3210),並將其用於條件邏輯。
相關問題
- 1. 文本掃描,檢查是否包含從指定列表
- 2. 如何檢查listView項是否包含FileInfo變量?
- 3. 如何檢查文件是否包含純文本?
- 4. 如何檢查包含文件的目錄是否存在?
- 5. 如何檢查文件是否僅包含Linux shell中的零?
- 6. 檢查包含哪個文件頭?
- 7. 如何檢查變量是否包含特定文本
- 8. 如何檢查一個值是否包含特定文本
- 9. NAnt:檢查包含文件是否已包含
- 10. 檢查argv是否包含特定的文件擴展名
- 11. 如何檢查DataTable是否包含DataRow?
- 12. 如何檢查NSString是否包含'%'?
- 13. 如何檢查HashSet是否包含值?
- 14. 如何檢查url是否包含「main.php」
- 15. 如何檢查CGContext是否包含點?
- 16. 檢查li是否包含指定的字符串
- 17. 檢查字符串是否只包含指定的字符
- 18. 如何檢查文件是否已包含在內?
- 19. 如何檢查csv文件是否包含字符串?
- 20. 如何檢查是否包含jQuery UI文件?
- 21. 如何檢查一個php文件是否被成功包含?
- 22. 如何檢查文件是否包含字符串(使用Nant)?
- 23. 如何檢查(在運行時)用戶是否包含文件
- 24. 如何在golang中檢查文件是否包含字符串?
- 25. 如何檢查HDFS文件是否包含二進制數據?
- 26. 如何檢查文件是否包含「。」 (點)運算符
- 27. 如何檢查一個txt文件是否包含一個詞
- 28. 檢查NSMutableArray是否包含給定值
- 29. 檢查網頁的href指向是否包含某些文本
- 30. 檢查是否包含jQuery
酷我不知道那種方法,有用的知道。但是,我的一些ListViews將包含多個標頭。有沒有一種方法可以判斷它們是否包含特定的頭文件? – Matthew
對,我其實可以從問題標題中挑選出來。無論如何,請參閱我的原始答案的補充。這應該可以幫助你。 –
感謝您的更新迴應。這聽起來像是一個好方法。或者,我已經採取了非常簡單的方法,只要我調用addHeaderView(v)並在刪除標題視圖時清除該標誌,就將布爾標誌'headerXAdded'設置爲true。 – Matthew