我在应用程序中使用树视图在黑莓中显示客户端服务器数据。我通过使用可扩展的列表视图项目在 android 应用程序中实现了相同的目标。但在这里我面临两个问题
一种是:
我想添加父节点图标,如文件夹图标和子节点必须有不同的图标。例如,如果父项是图像,则子节点必须具有图像图标,如果父项是视频,则子节点必须具有视频图标。
第二:
当我单击任何子节点(如图像子节点)时,此节点会在新屏幕中打开并显示可单击项,无论我单击图像还是视频。
这是我用来获取所需结果的代码:
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中实现这件事吗?