2010-11-19 54 views
0

我有一個自定義適配器來顯示帶有節標題的項目列表。我已經看過Jeff Sharkey的SeparatedListAdapter和CommonsWare的MergeAdapter作爲如何實現這個目標的例子,現在我有一個解決方案,它通過爲每個部分的內容提供一個單獨的適配器來工作。安卓適配器與部分標題:性能問題

雖然這會產生很大的性能問題。就我而言,列表中可能有數千個項目,每個項目都有關聯的日期,並且我希望將該日期用作該日期的所有項目的部分標題。

所以,沒有章節標題,我會有一個單一的光標,它返回按日期排序的項目。好,易於。

隨着章節標題,我正在做這個:

  1. 一個光標數據集中
  2. 對於每一個不同的日期選擇所有不同的日期,一個單獨的遊標返回的項目匹配日期
  3. 將日期(部分標題)倒入並將每個日期項目的SimpleCursorAdapters分隔到我的自定義適配器中。

這需要比我想要的更多的數據庫查詢和遊標生成,並且在出現ListView之前有幾秒的延遲。

我懷疑可能有一個更簡單的解決方案,其中getView做了一些巧妙的事情,並檢測日期在連續項目之間何時發生變化,然後潛入新標題本身,因此只需要一個光標。任何人都可以提出一種做法嗎?

回答

2

我想最簡單的方法是在每個getView調用中檢查前一個項目是否有不同的日期,如果是這樣,只是在當前視圖中嵌入標題。

+0

是的,我認爲你是對的。 – 2010-11-23 11:59:36

1

您可以嘗試http://code.google.com/p/android-section-list/,它只需要單個遊標(在一個對象中返回遊標+節)。然而,無論如何,必須通過所有元素(一次)來計算結果列表+標頭的大小(列表適配器所需的) - 因此它可能仍然很慢。