处理列表层次结构的正确方法

时间:2011-06-04 16:58:24

标签: android listview android-activity listactivity

我想问一个关于处理带有层次结构的列表的正确方法的一般性问题。我现在这样做的方法是通过使用bundle调用相同的活动来处理下一个查询,这样我就可以深入查看列表。我想知道是否有更好的方法来处理像我这样的列表。我应该使用多种活动吗? (不知道列表的深度)或只是在用户选择列表项时重新查询我的数据。此解决方案的问题是记住所选的列表项和手机上的后退按钮。我确信我错过了一些明显的东西,但我是Android的新手。任何帮助或建议将不胜感激。所以这就是我现在所做的:

  1. 查询数据并在MainActivity中显示带有根项目的列表。
  2. 用户点击其中一个项目,获取该项目的索引,并使用包含所选项目索引的包裹调用MainActivity
  3. 使用新项目查询数据,并在MainActivity中显示新列表。
  4. 冲洗并重复......
  5. 此外,我的列表超过两级,所以我认为ExpandableListView已经出局了。

2 个答案:

答案 0 :(得分:2)

ExpandableListView仅支持两个深度级别的原因之一是因为非常难以使n级树用户友好。如果他或她进入第5级,想象一下用户屏幕上的质量。

但是,不过,这是我要采取的方法。我还没有实现它,但这应该是可行的。

  1. 在顶部引入“导航栏”(如Windows资源管理器或某些网站):

      

    Root>项目1> subitem 2> ......

  2. 使用`可扩展列表显示当前级别和下一级别。

  3. 如果用户点击该项目,您将无效数据并重新填充ExpandbleListView下一级别。
  4. 她就是一个例子:

    > Root 
    ---------------
    Item 1
       Subitem 1
       Subitem 2
       Subitem 3
    Item 2 
       Subitem 4
       Subitem 5
    Item 3
       Subitem 6
    

    用户点击Subitem 4并看到:

    > Root > Item 2
    ---------------
    Subitem 4
       SubSubItem 1
       SubSubItem 2
       SubSubItem 3
    Subitem 5
       SubSubItem 4
       SubSubItem 5
    

    这不是一件容易实现的事,但不应该太难。这样可以在一个Activity中进行导航,并使用高度优化的ExpandableListView控件。您只需要实现自定义适配器。

答案 1 :(得分:1)

如果您的层次结构不深,只有2个级别,请使用ExpandableListView