我想为我的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 - 元素)。
如何正确使用?有没有人可以用逻辑帮我解决这个问题?并指出我的错误。