-
public FileBean(int _id, int parentId, String name)
-
{
-
super();
-
this._id = _id;
-
this.parentId = parentId;
-
this.name = name;
-
}
-
}
现在,不用说,应该也知道我们通过注解来确定的。
下面看我们如何将这数据转化为树
布局文件就一个listview,就补贴了,直接看Activity
[java] view plain copy
-
package com.zhy.tree_view;
-
import java.util.ArrayList;
-
import java.util.List;
-
import android.app.Activity;
-
import android.os.Bundle;
-
import android.widget.ListView;
-
import com.zhy.bean.FileBean;
-
import com.zhy.tree.bean.TreeListViewAdapter;
-
public class MainActivity extends Activity
-
{
-
private List mDatas = new ArrayList();
-
private ListView mTree;
-
private TreeListViewAdapter mAdapter;
-
@Override
-
protected void onCreate(Bundle savedInstanceState)
-
{
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
initDatas();
-
mTree = (ListView) findViewById(R.id.id_tree);
-
try
-
{
-
mAdapter = new SimpleTreeAdapter(mTree, this, mDatas, 10);
-
mTree.setAdapter(mAdapter);
-
} catch (IllegalAccessException e)
-
{
-
e.printStackTrace();
-
}
-
}
-
private void initDatas()
-
{
-
// id , pid , label , 其他属性
-
mDatas.add(new FileBean(1, 0, “文件管理系统”));
-
mDatas.add(new FileBean(2, 1, “游戏”));
-
mDatas.add(new FileBean(3, 1, “文档”));
-
mDatas.add(new FileBean(4, 1, “程序”));
-
mDatas.add(new FileBean(5, 2, “war3”));
-
mDatas.add(new FileBean(6, 2, “刀塔传奇”));
-
mDatas.add(new FileBean(7, 4, “面向对象”));
-
mDatas.add(new FileBean(8, 4, “非面向对象”));
-
mDatas.add(new FileBean(9, 7, “C++”));
-
mDatas.add(new FileBean(10, 7, “JAVA”));
-
mDatas.add(new FileBean(11, 7, “Javascript”));
-
mDatas.add(new FileBean(12, 8, “C”));
-
}
-
}
Activity里面并没有什么特殊的代码,拿到listview,传入mData,当中初始化了一个Adapter;
看来我们的核心代码都在我们的Adapter里面:
那么看一眼我们的Adapter
[java] view plain copy
-
package com.zhy.tree_view;
-
import java.util.List;
-
import android.content.Context;
-
import android.view.View;
-
import android.view.ViewGroup;
-
import android.widget.ImageView;
-
import android.widget.ListView;
-
import android.widget.TextView;
-
import com.zhy.tree.bean.Node;
-
import com.zhy.tree.bean.TreeListViewAdapter;
-
public class SimpleTreeAdapter extends TreeListViewAdapter
-
{
-
public SimpleTreeAdapter(ListView mTree, Context context, List datas,
-
int defaultExpandLevel) throws IllegalArgumentException,
-
IllegalAccessException
-
{
-
super(mTree, context, datas, defaultExpandLevel);
-
}
-
@Override
-
public View getConvertView(Node node , int position, View convertView, ViewGroup parent)
-
{
-
ViewHolder viewHolder = null;
-
if (convertView == null)
-
{
-
convertView = mInflater.inflate(R.layout.list_item, parent, false);
-
viewHolder = new ViewHolder();
-
viewHolder.icon = (ImageView) convertView
-
.findViewById(R.id.id_treenode_icon);
-
viewHolder.label = (TextView) convertView
-
.findViewById(R.id.id_treenode_label);
-
convertView.setTag(viewHolder);
-
} else
-
{
-
viewHolder = (ViewHolder) convertView.getTag();
-
}
-
if (node.getIcon() == -1)
-
{
-
viewHolder.icon.setVisibility(View.INVISIBLE);
-
} else
-
{
-
viewHolder.icon.setVisibilit