Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Android > Как правильно реализовать многоуровневый список |
Автор: aRixx 2.9.2012, 10:23 |
подскажите как правильно реализовать многоуровневый список. Думаю использовать ListView. Допустим у меня есть таблица с полями id, название элемента, id_p - id родительского элемента Мне кажется правильным вот такое решение: Для начала вывожу в ListView названия элементов у которых id_p=0. Для этого создаю ArrayList, куда добавляю только записи у которых id_p=0 и на его основе создаю SimpleAdapter. После щелчка по строке из ListView я очещаю свой ArrayList и формирую новый для выбранного id_p. После этого вызываю notifyDataSetChanged() для SimpleAdapter. С одной стороны вроде все просто, но мучают сомнения. Может быть есть более элегантное/правильное решение? |
Автор: math64 3.9.2012, 08:26 | ||
Есть ExpandableListView - это фактически дерево, но вроде, с одним уровнем вложенности. Если же ExpandableListView не устраивает, лучше сделать нормальную модель для дерева:
+ адаптер который будет отображать узлы дерева |
Автор: aRixx 3.9.2012, 08:53 |
Собственно вопрос как раз в том, как это сделать. Переформулирую, нужно ли переписывать метод getView и там как-то фильтровать отображаемые строки или нужно где-то вне, в обработчике щелчка по элементу списка организовать перезагрузку данных с которыми связан адаптер??? |
Автор: math64 3.9.2012, 09:47 |
Если выделена модель, например, как предложил я - данные перегружать не надо, они все уже находятся в модели. По щелчку мыши изменяется значение поля expanded узла дерева и вызывается notifyDataSetChanged(). TreeAdapter наследуешь от BaseAdapter. |
Автор: aRixx 3.9.2012, 11:10 |
Понял, спасибо. Попробую реализовать. |