0

我已经开始使用树视图列表来显示我的数据。树视图列表可以在这里找到:

http://code.google.com/p/tree-view-list-android/

将文本添加到树视图行的代码如下:

private String getDescription(final long id) {
    final Integer[] hierarchy = getManager().getHierarchyDescription(id);
    return "Node " + id + Arrays.asList(hierarchy);

}

在 SimpleStandardAdapter.java 文件中。演示中显示的数据基于行 ID,而不是树视图之外的任何内容。

我将如何为树视图外部的树行添加文本?

例如,在运行时填充的数据数组。

4

1 回答 1

2

适配器(几乎与任何其他适配器一样)根据模型提供的数据构建视图。AbstractTreeViewAdapter 以它为包装视图提供实现的方式编写 - 因此它将创建一个新的子视图 (abstract getNewChildView) 或重用一个 (updateView) - 然后将其作为子视图添加到具有右填充/边距等(这会在树中自动缩进)。

因此,当您需要以自己的方式将某些内容显示为树单元时,您应该构建自己的适配器(您可以扩展 SimpleStandardAdapter 或以类似于 SimpleStandardAdapter 的方式从头开始构建自己的适配器并返回您想要显示的适当视图作为 getNewChildView 和 updateView 方法的结果。

这两种方法都获取 TreeNodeInfo treeNodeInfo 作为参数,因此您可以确定要渲染树的哪个节点。该类型 - 不幸的是 - 不可更改,我一开始尝试制作一个通用解决方案,您将能够使用任何对象类型但失败了,它必须是 Long。可能应该对其进行更改以反映这一点。

因此,您将从识别节点的 TreeNodeInfo 获取 Long id,使用它的最佳方法是使用 Long 值作为某个 Map 的索引,您将在其中保留对节点对象的引用,并通过这种方式了解要渲染的数据。

我希望它有所帮助。

于 2013-05-07T16:38:09.020 回答