我想问一个关于处理具有层次结构的列表的正确方法的一般性问题。我现在的做法是通过 bundle 调用相同的 Activity 来处理下一个查询,这样我就可以深入到列表中。我想知道是否有更好的方法来处理像我这样的列表。我应该使用多项 Activity 吗? (不知道列表的深度)或者只是在用户选择列表项时重新查询我的数据。此解决方案的问题是记住已选择的列表项和手机上的后退按钮。我确定我遗漏了一些明显的东西,但我是 Android 的新手。任何帮助或建议将不胜感激。所以这就是我现在所做的:
- 查询数据并在
MainActivity
中显示包含根项的列表。 - 用户点击其中一个项目,获取该项目的索引并使用包含所选项目索引的包调用
MainActivity
。 - 使用新项目查询数据并在
MainActivity
中显示新列表。 - 冲洗并重复...
此外,我的列表深度超过两层,所以我认为 ExpandableListView
已经用完了。
最佳答案
ExpandableListView
仅支持两层深度的原因之一是,非常难以使 n 层树变得用户友好。想象一下如果他或她进入第 5 级,用户屏幕上的质量。
但是,尽管如此,这是我会采用的方法。我还没有实现它,但这应该是可行的。
在顶部引入“导航栏”(就像 Windows Explorer 或某些网站那样):
Root > item 1 > subitem 2 > ...
使用`可扩展列表显示当前级别和下一级。
- 如果用户点击该项目,您将使数据无效并使用下一级重新填充
ExpandbleListView
。
她就是一个例子:
> 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
控件。您只需要实现自定义适配器。
关于android - 处理列表层次结构的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6238116/