2013-09-24 1 views
1
public class Expandablelistview extends MainScreen { 
    public Expandablelistview() { 
    // A separator field between each type of control\ 
    // setTitle("Tree Field Demo"); 
    String parentfield1 = new String("Demo1"); 
    String parentfield2 = new String("Demo2"); 
    String childfield1 = new String("Demo3"); 
    String childfield2 = new String("Demo4"); 
    String parentfield3 = new String("Demo5"); 
    String parentfield4 = new String("Demo6"); 
    String childfield3 = new String("Demo7"); 
    String childfield4 = new String("Demo8"); 
    String childfield5 = new String("Demo9"); 
    String childfield6 = new String("Demo10"); 
    String parentfield5 = new String("Demo11"); 
    String childfield7 = new String("Demo12"); 
    String childfield8 = new String("Demo13"); 

    TreeCallback myCallback = new TreeCallback(); 
    final TreeField myTree = new TreeField(myCallback, Field.FOCUSABLE); 
    myTree.setDefaultExpanded(false); 

    int node12 = myTree.addChildNode(0, parentfield5); 
    int node13 = myTree.addChildNode(node12, childfield7); 
    int node14 = myTree.addChildNode(node12, childfield8); 
    // int node7 = myTree.addChildNode(0, parentfield5); 
    int node6 = myTree.addChildNode(0, parentfield4); 
    int node11 = myTree.addChildNode(node6, childfield6); 
    int node10 = myTree.addChildNode(node6, childfield5); 
    int node8 = myTree.addChildNode(node6, childfield3); 
    int node9 = myTree.addChildNode(node6, childfield4); 
    int node5 = myTree.addChildNode(0, parentfield3); 
    int node2 = myTree.addChildNode(0, parentfield2); 
    int node3 = myTree.addChildNode(node2, childfield1); 
    int node4 = myTree.addChildNode(node2, childfield2); 
    int node1 = myTree.addChildNode(0, parentfield1); 

    add(myTree); 
    // myTree.setChangeListener(new myTreeChangeListener()); 

    // HERE I TRIED FOR ITEM CLICK 


    FieldChangeListener fdbtncalculate = new FieldChangeListener() { 

     public void fieldChanged(Field field, int context) { 
      // TODO Auto-generated method stub 
      int a = myTree.getNodeCount(); 
      System.out.print("mytree" + a); 

      if (a == 0) { 
       Dialog.alert("data"); 
      } else if (a == 1) { 
       Dialog.alert("data"); 
      } 


     } 
    }; 
    myTree.setChangeListener(fdbtncalculate); 

} 

private class TreeCallback implements TreeFieldCallback { 
    public void drawTreeItem(TreeField _tree, Graphics g, int node, int y, 
      int width, int indent) { 
     String text = (String) _tree.getCookie(node); 
        g.drawText(text, indent, y); 

    } 

} 

} 

Je veux savoir ce que je fais mal? Je veux ouvrir mon fichier de classe sur un clic de l'élément parent et enfant de TreeView pour que je l'ai utilisé auditeur sur le terrainComment ouvrir un nouveau fichier de classe sur le clic d'un parent et d'un élément enfant dans blackberry?

+1

cochez cette réponse - http://stackoverflow.com/questions/18485618/parent-child-node-with-different-images-clickable-event-treeview-blackberr – Signare

Répondre

1

Au lieu d'utiliser un FieldChangeListener, essayez ce code, which overrides navigationClick():

TreeCallback myCallback = new TreeCallback(); 
    TreeField myTree = new TreeField(myCallback, Field.FOCUSABLE) { 
    protected boolean navigationClick(int status, int time) { 
     // We'll only override unvarnished navigation click behavior 
     if ((status & KeypadListener.STATUS_ALT) == 0 && 
       (status & KeypadListener.STATUS_SHIFT) == 0) 
     { 
      final int node = getCurrentNode(); 
      if (getFirstChild(node) == -1) {    
       // Click is on a leaf node. 
       Dialog.alert("clicked leaf node " + getCookie(node)); 
       return true; 
      } else { 
       // Node is a parent node 
       setExpanded(node, !getExpanded(node)); 
       Dialog.alert("clicked parent node " + getCookie(node)); 
       return true; 
      } 
     } 
     return super.navigationClick(status, time); 
    } 
    }; 

Je suis pas sûr de ce que vous entendez par "ouvrir un nouveau fichier de classe", mais quoi que vous voulez faire après que l'utilisateur clique sur une partie de l'arbre, vous le feriez où j'ai le code Dialog.alert() ci-dessus.

+0

à la place de Dialog.alert, il/elle peut pousser l'écran. – Signare

+0

merci Nate et Signare c'est fini – Kirti

Questions connexes