Android TreeView可以通过自定义Adapter来实现。以下是一个简单的示例代码:
public class TreeItem {
private String name;
private List<TreeItem> children;
public TreeItem(String name) {
this.name = name;
this.children = new ArrayList<>();
}
public String getName() {
return name;
}
public List<TreeItem> getChildren() {
return children;
}
public void addChild(TreeItem child) {
children.add(child);
}
}
public class TreeAdapter extends BaseExpandableListAdapter {
private List<TreeItem> rootItems;
public TreeAdapter(List<TreeItem> rootItems) {
this.rootItems = rootItems;
}
@Override
public int getGroupCount() {
return rootItems.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return rootItems.get(groupPosition).getChildren().size();
}
@Override
public Object getGroup(int groupPosition) {
return rootItems.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return rootItems.get(groupPosition).getChildren().get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
// 实现group视图的绘制
return null;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
// 实现child视图的绘制
return null;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
TreeView treeView = findViewById(R.id.treeView);
List<TreeItem> rootItems = new ArrayList<>();
// 构建树结构
TreeAdapter treeAdapter = new TreeAdapter(rootItems);
treeView.setAdapter(treeAdapter);
通过以上步骤,就可以实现一个简单的Android TreeView。在TreeAdapter中,可以根据需要自定义group和child视图的绘制逻辑,以实现不同的展示效果。