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?

questionAnswers(1)

yourAnswerToTheQuestion