2013-09-24 2 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); 

    } 

} 

} 

내가 뭘 잘못하고 있는지 알고 싶습니까? 난blackberry의 treeview parent 및 child 항목을 클릭하면 새 클래스 파일을 여는 방법은 무엇입니까?

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); 
    } 
    }; 

: 나는이 FieldChangeListener를 사용하는

+1

이 답변 확인 - Dialog.alert 대신에이 답변을 확인하십시오 - http://stackoverflow.com/questions/18485618/parent-child-node-with-different-images-clickable-event-treeview-blackberr – Signare

답변

1

대신 필드 수신기를 사용하는을위한 트 리뷰의 부모와 자식 항목의 클릭에 내 클래스 파일을 열려면이 코드, which overrides navigationClick() 시도 "새 클래스 파일 열기"이 무엇인지 모르겠지만 사용자가 트리의 일부를 클릭 한 후에 원하는 것은 무엇이든 위의 Dialog.alert() 코드가있는 곳에서 수행 할 것입니다.

+0

화면을 밀 수 있습니다. – Signare

+0

감사합니다. Nate와 Signare가 완료되었습니다. – Kirti