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();