java - 将数据添加到 TreeView 列表

标签 java android treeview

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

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

向 TreeView 行添加文本的代码是这样的:

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

}

在 SimpleStandardAdapter.java 文件中。演示中显示的数据基于行 ID,而不是 TreeView 外部的任何数据。

如何为 TreeView 外部的树行添加文本?​​

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

最佳答案

适配器(几乎与任何其他适配器一样)根据模型提供的数据构建 View 。 AbstractTreeViewAdapter 的编写方式是为包装 View 提供实现 - 因此它将创建一个新的 subview (抽象 getNewChildView)或重用一个 subview (updateView) - 然后将其作为 subview 添加到单元格项目中右填充/边距等(这提供了在树中自动缩进)。

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

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

因此,您将从 TreeNodeInfo 获取用于标识节点的 Long id,使用它的最佳方法是使用 Long 值作为某个 Map 的索引,您将在其中保留对节点对象的引用知道要渲染哪些数据的方法。

希望对您有所帮助。

关于java - 将数据添加到 TreeView 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16417298/

相关文章:

java - 在哪里以及如何下载 Spring jar?

java - 应用数据清除后如何退出Google?

java - 如何确定旋转图像的最终位置或角度

android - AssertionError:根包必须初始化

java - 使用 Google 搜索 API

java - App Engine 搜索 api GeoPoint 搜索

android - 如何使用表面 View 删除标题栏以在 android 中添加相机覆盖

c# - 通过绑定(bind)到不同的 TreeView selectedItem 使用不同的数据模板

javascript - 将 URL 值缩短为 Javascript 变量

wpf - 自定义 WPF TreeView