holder.icon.setImageBitmap(mIconCollapse);
} else if (obj.isHasChild() && (obj.isExpanded() == true)) {
holder.icon.setImageBitmap(mIconExpand);
} else if (!obj.isHasChild()) {
holder.icon.setImageBitmap(mIconCollapse);
holder.icon.setVisibility(View.INVISIBLE);
}
return convertView;
}
class ViewHolder {
TextView text;
ImageView icon;
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Log.i("TreeView", "position:" + position);
if (!nodes.get(position).isHasChild()) {
Toast.makeText(this, nodes.get(position).getTitle(), 2000);
return;
}
if (nodes.get(position).isExpanded()) {
nodes.get(position).setExpanded(false);
TreeElement element = nodes.get(position);
ArrayList
for (int i = position + 1; i < nodes.size(); i++) {
if (element.getLevel() >= nodes.get(i).getLevel()) {
break;
}
temp.add(nodes.get(i));
}
nodes.removeAll(temp);
treeViewAdapter.notifyDataSetChanged();
} else {
TreeElement obj = nodes.get(position);
obj.setExpanded(true);
int level = obj.getLevel();
int nextLevel = level + 1;
for (TreeElement element : obj.getChilds()) {
element.setLevel(nextLevel);
element.setExpanded(false);
nodes.add(position + 1, element);
}
treeViewAdapter.notifyDataSetChanged();
}
}
}
Android 经典示例源码下载地址:
具体下载目录在 /pub/Android源码集锦/2011年/9月/Android 经典示例源码/