Węzeł nadrzędny i podrzędny z różnymi obrazami i zdarzeniem klikalnym - Treeview Blackberry
Używam widoku drzewa w aplikacji, aby wyświetlić dane serwera klienta w blackberry. To samo, co osiągnąłem w aplikacji na Androida, używając rozwijanych elementów listview. Ale tutaj stoję przed dwoma problemami
Jeden jest:Chcę dodać ikonę węzła nadrzędnego, tak jak ikona folderu i węzeł podrzędny musi mieć inną ikonę. Na przykład, jeśli elementem nadrzędnym są obrazy, węzły potomne muszą mieć ikonę Obrazy, jeśli elementem nadrzędnym jest wideo. Następnie dziecko ma ikony wideo.
Druga:Po kliknięciu dowolnego węzła podrzędnego (np. Węzła podrzędnego obrazu), ten węzeł otwiera się na nowym ekranie i pokazuje klikalny element, niezależnie od tego, czy kliknę obraz czy wideo.
Oto mój kod, którego użyłem, aby uzyskać pożądany rezultat:
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);
}
}
i
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);
}
}
Dołączyłem też screenShot, który zrobiłem w Androidzie. Ktoś daje mi wskazówki, aby osiągnąć ten cel na BB?