TreeView внутри getChildern()
Можно ли создать древовидное представление внутри метода getChildern() провайдера контента?
У меня есть древовидная структура, чей метод getElements() показывает несколько узлов, поступающих из перечисления для каждого узла в этом дереве. Я хочу иметь другое представление дерева. Поэтому, когда пользователь расширяет один корневой узел, там должно быть другое древовидное представление.
Спасибо
1 ответ
Нет, вы не можете вложить дерево зрителей. Вы должны использовать модель данных для дерева, которое представляет все дерево.
Предположим, у вас есть класс TopLevelElement
представляющий один из элементов верхнего уровня в дереве и классы Level1Element
а также Level2Element
для детей первого и второго уровня. Тогда ваши методы контент-провайдера будут примерно такими:
@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
}