【问题标题】:How to create ListView disabled item labels for sections of list items?如何为列表项部分创建 ListView 禁用项标签?
【发布时间】:2010-07-27 13:04:14
【问题描述】:

我为我的ListView 定制了一个基于Cursor 的适配器。每个Cursor 都有几列数据,按优先级列排序。

我知道您可以创建一个禁用的列表项来充当一种标题,就像在市场应用程序中一样(小绿色标签)。

我想做的是为每组具有不同优先级的项目显示一个标题。它们已经按优先级排序。

示例数据:

title, priority
note1, high
note3, high
note2, low
note4, low

ListView 中我想要的示例:

===High Priority====
-note1
-note3
===Low Priority=====
-note2
-note4

关于如何做到这一点的任何想法?

【问题讨论】:

标签: android database listview


【解决方案1】:

由于您使用的是光标,您可以试试我的SectionCursorAdapter

有关如何使用它的示例,请参阅源代码。

【讨论】:

    【解决方案2】:

    ListView 中包含标题行是定制适当的ListAdapter 的问题。让areAllItemsEnabled() 返回false 并根据需要实现isItemEnabled()

    事情变得棘手的地方在于您选择的数据模型。您的ListAdapter 需要从getCount() 返回6,因为您希望列表中有六行。您的基础数据有四行。这意味着您将不得不编写相当多的代码来将位置从 ListView 的想法 (6) 转换为您的数据的想法 (4),并处理其他两个位置的标题行。

    【讨论】:

    • 有没有我可以使用的更好的数据模型?也许在光标和适配器之间建立第二个数据模型?
    • @CodeFusionMobile:到目前为止,我做标题的唯一方法是我有单独的光标——在你的情况下,一个光标表示高,一个光标表示低。请参阅此示例项目:github.com/commonsguy/cw-advandroid/tree/master/ListView/… 如果您的优先级数量相当少,您可以使用相同的技术,但如果您正在寻找很多标题,那么制作一个可以与您现有的适配器一起使用的适配器可能更有效数据模型。
    猜你喜欢
    • 2019-01-24
    • 2011-01-12
    • 1970-01-01
    • 2020-01-10
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多