我有一個自定義列表,它需要幾分鐘時間才能顯示。當我試圖檢查問題出在哪裏時,我發現即使在列表中只有一個項目時,方法getCount()被調用5次,getVIew()被調用一次,然後getCount()被調用更多的時間。 整體getCount()被調用7次。這有道理嗎?爲什麼適配器中的getCount被多次調用?
謝謝!
我有一個自定義列表,它需要幾分鐘時間才能顯示。當我試圖檢查問題出在哪裏時,我發現即使在列表中只有一個項目時,方法getCount()被調用5次,getVIew()被調用一次,然後getCount()被調用更多的時間。 整體getCount()被調用7次。這有道理嗎?爲什麼適配器中的getCount被多次調用?
謝謝!
對不起,但我沒有理解「保持儘可能快」的部分 - 這種方法只返回數組的大小嗎? – user1787773
當然。但是你可以隨意重寫它。這個想法是確保你不要在它裏面做任何代價高昂的計算,因爲它很可能會在UI線程中被調用很多次。 – fiddler
我沒有覆蓋它。我所做的只是返回數組大小。所以我想這意味着需要listView出現的時間與被多次調用的getCount()沒有任何關係? – user1787773
getCount()
被稱爲太多的時間,因爲App-USER
可以隨時update its list
和多數民衆(可以在其存儲數據添加)爲什麼我們返回,(storage).size()
(元素的總數)。
適配器getCount()
方法將在以下情況下調用。
1)將適配器設置爲列表視圖/網格視圖。
2)當我們在Adapter上調用notifyDataSetChanged
時。
所以,檢查你的代碼,你可能會做上述情況更多的時間或遞歸..
你應該有一個搜索按鈕進行搜索時,更新的適配器。該方法被稱爲多次繪製視圖,如果在該方法中您有一個setAdapter
,那麼將會多次調用getCount
,並且最終將返回0,並且您查看的內容不會被填充。
PLease提供代碼示例! –
顯示代碼。我相當懷疑getCount()讓你的列表抓取 –
你滾動嗎?提供更多的數據 – GamDroid