【www.gdgbn.com--js教程】

J2ME里面有自带的List类,但是功能太弱,没有实现View和Model的分离,所以操作起来比较费事。本来事想写一个Canvas的TreeList,但是画起来算坐标又太麻烦,所以选取了一个折中的方法,继承List,实现一个操作起来比较方便的组件。
       目的:
       1.可伸缩的目录树结构,暂时先实现两层。
       2.Label和存储内容分离。
       3.激活和非激活图片分开。
       4.通过选择事件可以准确快速找到对应内容
       5.存储内容无关性,里面可以放置任何Object
       实现思路:
       1.封装一个ExpandItem类,用来存储每一条数据。
/**
  * 默认图片
  */
 private  String imagePath="";
 /*
  * 激活图片,如果为空说明此图片无效
  */
 private String selectImgPath=null;
 /**
  * 组
  */
 public static int GROUP=1;
 /**
  * 记录
  */
 public static int ITEM=0;
 /**
  * 是否选中,如果选中则默认为展开状态
  */
 private boolean ifselected=false;
 /**
  * 显示Label
  */
 private String label;
 /**
  * 类型:组,记录
  */
 private int type;
 /**
  * 存储的对象
  */
          GROUP表示这个ITEM是一个父节点,下面包含字节点,这样它的Content将是一个Vector.
          ITEM表示这个ITEM是根节点。
         selectImgPath,是激活后的图标,可以为空,为空的时候选择了这个ITEM图标不变。
然后就是ExpandList类,此类的数据结构如下:
          private Vector itemList = new Vector();

本文来源:http://www.gdgbn.com/wangyezhizuo/5697/