为Android制作树视图

时间:2016-09-06 08:01:32

标签: java android treeview

我想为我的Android应用程序制作N-Level树视图,但出了点问题。我在程序开发方面不太好,所以我在这里请求帮助。我使用这个库https://github.com/bmelnychuk/AndroidTreeView

2)从根元素开始创建树。不会显示TreeNode.root()元素,因此不需要设置任何内容。

TreeNode root = TreeNode.root();

创建并添加节点(使用自定义对象作为构造函数参数)

TreeNode parent = new TreeNode("MyParentNode");
 TreeNode child0 = new TreeNode("ChildNode0");
 TreeNode child1 = new TreeNode("ChildNode1");
 parent.addChildren(child0, child1);
 root.addChild(parent);

3)将树视图添加到布局

AndroidTreeView tView = new AndroidTreeView(getActivity(), root);
 containerView.addView(tView.getView());

最简单但没有样式的树已准备就绪。现在,您可以将父节点视为树的根

4)节点的自定义视图

扩展TreeNode.BaseNodeViewHolder并覆盖createNodeView方法以为节点准备自定义视图:

public class MyHolder extends TreeNode.BaseNodeViewHolder<IconTreeItem> {
    ...
    @Override
    public View createNodeView(TreeNode node, IconTreeItem value) {
        final LayoutInflater inflater = LayoutInflater.from(context);
        final View view = inflater.inflate(R.layout.layout_profile_node, null, false);
        TextView tvValue = (TextView) view.findViewById(R.id.node_value);
        tvValue.setText(value.text);

        return view;
    }
    ...
    public static class IconTreeItem {
        public int icon;
        public String text;
    }
}

5)将视图持有者与节点

连接
IconTreeItem nodeItem = new IconTreeItem();
  TreeNode child1 = new TreeNode(nodeItem).setViewHolder(new MyHolder(mContext));

6)考虑使用

TreeNode.setClickListener(TreeNodeClickListener listener);
AndroidTreeView.setDefaultViewHolder
AndroidTreeView.setDefaultNodeClickListener
...

我的数据库只有一个包含字段的表:ID,PARENT_ID,TYPE,NAME,PRICE_TYPE,ADDRESS。 (TYPE持有“1”或“2”1 - flolder 2 - 元素)。

如何正确使用?有没有人可以用逻辑帮我解决这个问题?并指出我的错误。

0 个答案:

没有答案