2009-10-22 77 views
11

的內容我已經包含關於與評級距離到當前位置的地方信息項一個ListView。安卓:ListView中自定義分隔符(甚至項目)depening上項目

項目被分爲兩組:

  • 第1組:500米之內
  • 組2:500MHz - 1公里
  • 組3:1公里 - 1.5公里
  • ...

通過這些羣組,這些項目按其評級排序。

現在我通過我的自定義適配器(BaseAdapter的擴展名)將這些項目放入ListView,這很好地工作。

但是,我想要做的是在每個組的每個第一項之前放置一個分隔符。該分隔符可以是例如TextView500m - 1km後面是該組中的所有ListView項。

關於如何實現這一點的任何想法?

回答

19

Here is one implementation這完全符合你的描述。

那一個是GPLv3,因爲它來自於this implementation,這是GPLv3。

您也可以使用我的MergeAdapter,因爲它具有Apache License 2.0的優勢。只需交付一組包含標題TextViewAdapters的標題,其中包含每個部分的內容。

或者,您可以查看所有這些信息並將其行爲轉移到您現有的Adapter課程中。訣竅是將TextView標題返回到正確的位置,並正確實施諸如getViewTypeCount(),getItemViewType(),areAllItemsEnabled()isEnabled()之類的方法。

+0

你有屏幕截圖嗎? – Tawani 2009-10-22 14:30:49

+0

我的高級Android手冊中有第一個屏幕截圖。在Jeff Sharkey的網站上有第二張截圖,鏈接到上面。無論如何,我沒有第三個屏幕截圖,很大程度上是因爲它不會是MergeAdapter的屏幕截圖,而是您投入MergeAdapter的任何屏幕截圖。 – CommonsWare 2009-10-22 14:37:44

+0

您的SectionedAdapter的實現工作得很好。謝謝!一個簡單的問題:有沒有辦法從每個部分的最後一個列表項中刪除底部分隔符? – jeffh 2010-11-20 06:25:12