ListViews中的ListViews

时间:2012-01-17 11:48:37

标签: android listview

我必须实现类似的东西: enter image description here  “列表视图”

我每年拨打month.setadapter(adapter)一次,但由于上个月覆盖了上一个月的信息,因此无效。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

在这种情况下,我通常会将其作为单个自定义适配器实现。

  1. 从BaseAdapter派生
  2. 将数据设置为非通用ArrayList。您可以使用表示月份行的数据和每个月内的详细信息行填充ArrayList。您需要某种方法在适配器中区分它们,因此请在允许您执行此操作的自定义对象中包装。在上面的示例中,我假设您可以遍历数据并在每次到达与上一个数据行不同月份的行时插入Date对象。
  3. 您的适配器应覆盖getItemViewType和getItemViewCount。 getItemViewCount返回不同视图类型的总数(看起来你将从这个方法返回2)。
  4. 在getView中,获取position参数并将其传递给getItemViewType。在getItemViewType中,获取ArrayList中当前位置的项目并测试其数据类型。返回一个常量,表示要显示的数据类型。
  5. 在getView中,现在您要显示数据类型,运行适合此显示的代码 - 膨胀表示相应行类型的布局,并在布局的子视图上设置适当的数据。
  6. 所有这些都包含在Google I / O 2010的“WorldView of ListView”视频中,所有Android程序员都应至少观看一次:

    http://www.youtube.com/watch?v=wDBM6wVEO70