Правильный способ обработки иерархии списка - PullRequest
1 голос
/ 04 июня 2011

Я хочу задать общий вопрос о правильном способе обработки списка с иерархией.Я делаю это сейчас, вызывая ту же операцию с пакетом для обработки следующего запроса, чтобы я мог углубиться в список.Мне интересно, есть ли лучший способ иметь дело со списками, как мой.Должен ли я использовать несколько видов деятельности?(не знаю глубину списка) или просто запрашивать мои данные, когда пользователь выбирает элемент списка.Проблема с этим решением - запоминание выбранного элемента списка и кнопка возврата на телефоне.Я уверен, что упускаю что-то очевидное, но я новичок в Android.Любая помощь или предложения будут с благодарностью.Вот что я делаю сейчас:

  1. Запрос данных и отображение списка в MainActivity с корневыми элементами.
  2. Пользователь нажимает на один из элементов, получаетИндекс этого элемента и вызовите MainActivity с пакетом, который содержит индекс выбранного элемента.
  3. Запросите данные с новым элементом и отобразите новый список в MainActivity.
  4. полоскать и повторять ...

Кроме того, мой список имеет более двух уровней, поэтому я считаю, что ExpandableListView отсутствует.

Ответы [ 2 ]

2 голосов
/ 04 июня 2011

Одна из причин, по которой ExpandableListView поддерживает только два уровня глубины, заключается в том, что очень трудно сделать дерево n-уровня удобным для пользователя.Просто представьте себе массу на экране пользователя, если он или она перейдет на 5-й уровень.

Но, тем не менее, вот подход, который я бы выбрал.Я еще не реализовал это, но это должно быть выполнимо.

  1. Введите "Навигационную панель" вверху (как в Windows Explorer или у некоторых сайтов):

    Root> элемент 1> подэлемент 2> ...

  2. Используйте `Расширяемый список, чтобы показать текущий уровень и следующий уровень.

  3. Если пользователь нажимает на элемент, вы лишаете законной силы данные и повторно заполняете ExpandbleListView следующими уровнями.

Ее пример:

> Root 
---------------
Item 1
   Subitem 1
   Subitem 2
   Subitem 3
Item 2 
   Subitem 4
   Subitem 5
Item 3
   Subitem 6

Пользователь нажимает наSubitem 4 и видит:

> Root > Item 2
---------------
Subitem 4
   SubSubItem 1
   SubSubItem 2
   SubSubItem 3
Subitem 5
   SubSubItem 4
   SubSubItem 5

Это не тривиально для реализации, но не должно быть слишком сложным.Это дает навигацию внутри одного действия и использует высоко оптимизированное ExpandableListView управление.Вам нужно только реализовать пользовательский адаптер.

1 голос
/ 04 июня 2011

Если ваша иерархия не глубокая, только с 2 уровнями, используйте ExpandableListView.

...