アプリでツリー ビューを使用して、クライアント サーバー データをブラックベリーで表示しています。拡張可能なリストビュー項目を使用して、Android アプリで同じことを達成しました。しかし、ここで私は2つの問題に直面しています
1つは次のとおりです。
フォルダーアイコンのような親ノードアイコンを追加したい&子ノードには別のアイコンが必要です。たとえば、親アイテムが画像の場合、子ノードには画像アイコンが必要です。親アイテムがビデオの場合、子ノードにはビデオ アイコンが必要です。
2番:
任意の子ノード (Like image 子ノード) をクリックすると、このノードが新しい画面で開き、画像またはビデオをクリックしてもクリック可能な項目が表示されます。
目的の結果を得るために使用したコードは次のとおりです。
class CustomTreeFieldCallback implements TreeFieldCallback {
public void drawTreeItem(TreeField _tree, Graphics g, int node, int y,
int width, int indent) {
// FontFamily
FontFamily fontFamily[] = FontFamily.getFontFamilies();
Font font = fontFamily[1].getFont(FontFamily.CBTF_FONT, 18);
g.setFont(font);
String text = (String) _tree.getCookie(node);
Bitmap b = Bitmap.getBitmapResource("images.png");
g.drawText(text, indent + b.getWidth(), y);
g.drawBitmap(indent, y - 15, b.getWidth(), b.getHeight(), b, 0, 0);
}
}
と
public class FilesManager extends MainScreen {
public FilesManager() {
// Set the linear background.
Bitmap background = Bitmap.getBitmapResource("background.png");
Background bg = BackgroundFactory.createBitmapBackground(background);
this.getMainManager().setBackground(bg);
String parentNode = new String("Images");
String firstChild = new String("first child");
String secondChild = new String("second child");
String thirdChild = new String("third child");
CustomTreeFieldCallback myCallback = new CustomTreeFieldCallback();
myTree = new TreeField(myCallback, Field.FOCUSABLE);
int node2 = myTree.addChildNode(0, parentNode);
myTree.addChildNode(node2, firstChild);
myTree.addChildNode(node2, secondChild);
myTree.addChildNode(node2, thirdChild);
add(myTree);
}
}
Androidで作成したスクリーンショットも添付しました。BBでこれを達成するためのガイドラインを教えてください。