2015-02-03 7 views
0

콘텐츠 공급자의 getChildern() 메서드 내에서 트리 뷰를 만들 수 있습니까?getChildern() 내 Treeview

getElements() 메소드가이 트리의 각 노드에 대한 열거 형에서 오는 일부 노드를 표시하는 트리 뷰가 있습니다. 다른 트리 뷰가 필요합니다. 따라서 사용자가 하나의 루트 노드를 확장하면 다른 트리 뷰가 있어야합니다.

감사합니다.

답변

0

아니요 트리 뷰어를 중첩 할 수 없습니다. 전체 트리를 나타내는 트리에 대해 데이터 모델을 사용해야합니다.

트리의 최상위 요소 중 하나를 나타내는 클래스 TopLevelElement과 첫 번째 및 두 번째 하위 클래스에 대해 Level1ElementLevel2Element 클래스가 있다고 가정합니다. 그런 다음 콘텐츠 제공 방법 같은 것입니다 :

@Override 
public Object [] getElements(Object inputElement) 
{ 
    return array of TopLevelElements object; 
} 

@Override 
public Object [] getChildren(Object parentElement) 
{ 
    if (parentElement instanceof TopLevelElement) 
    { 
    return array of Level1Element children of the top level element 
    } 
    else if (parentElement instanceof Level1Element) 
    { 
    return array of Level2Element children of Level1Element 
    } 
    else if (parentElement instanceof Level2Element) 
    { 
    ... return any level 3 elements 
    } 

    return new Object[0]; // Unknown tree element 
} 
+0

내 문제는 수준이 알려진 것은 아니지만 부모 요소 리터럴 열거 :(1 요소는 구성 요소와 수준이 하위 구성 요소가 있습니다 – wearybands

+0

레벨이 있다는 것이다 즉, 하위 구성 요소에 더 많은 하위 구성 요소가있을 수 있습니다. – wearybands

+0

레벨을 알 필요가 없습니다. 'parentElement'의 자식을 가져 오는 방법은 –