Визуальное отображение структур данных

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
Egrace
Сообщения: 14
Зарегистрирован: 17 сен 2014, 19:00

Визуальное отображение структур данных

Сообщение Egrace » 17 сен 2014, 19:13

Доброго времени суток, разработчики!
Я новенький среди вас, и, думаю, что задержусь надолго. Недавно начал разрабатывать приложения на Android. Знаю, тут таких много, но тем не менее, я нуждаюсь в помощи сообщества.
Совсем недавно я разобрался с ListView и ListFragment. Научился добавлять в них элементы с помощью адаптера ListAdapter. Но в этот адаптер принимает в качестве параметра ArrayList, который преобразуется в массив внутри адаптера(насколько я понял). Итак, первая часть моего негодования и причина двухдневного мучения заключается в следующем: можно ли как-нибудь в адаптер передать не ListArray а собственную реализацию интерфейса List?
Вторая часть моих истязаний над собой связана с тем, что я никак не могу придумать как реализовать отображение структуры бинарного дерева. Есть у кого-нибудь вообще идеи как к этому подойти? Есть ли какой-нибудь Tree-adapter или что-то в этом роде для ExpandableList? И вообще, ExpandableList может быть вложенным? Или, быть может, существует более элегантный способ отобразить дерево чем ExpandableList?
Если еще дорогой(без шуток, потому что мне очень нужна помощь, а если ты дочитал до этого момента, то ты хоть немного попытался подумать о моей проблеме) читатель не понял, то задача чисто учебная.
Всем ответившим большой пирожок со вкусным повидлом и огромнейшая благодарность.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Визуальное отображение структур данных

Сообщение altwin » 18 сен 2014, 10:54

Что то я нифига не понял. Двоичное дерево - это способ хранения и организации работы с данными, но никак не их отображения. Выводить можно куда угодно, но если хочется именно нарисовать абстрактное представление, то это графика, брать и рисовать, либо использовать что то из игровых движков. Ничего подобного быть в sdk просто не может -это не элемент интерфейса. Дерево подразумевает под собой в первую очередь структурирование для упрощения доступа, т.е. поиск, удаление \ вставка и т.д. ListView - это ПредставлениеСписка, т.е. вам нужен список а не дерево. В android как собственно и большинстве случаях с java деревья и графы более чем бесполезны, обычного хеша хватит с головой.
По поводу списков - http://www.vogella.com/tutorials/Androi ... ticle.html тут все есть.
Изображение

Аватара пользователя
Egrace
Сообщения: 14
Зарегистрирован: 17 сен 2014, 19:00

Re: Визуальное отображение структур данных

Сообщение Egrace » 18 сен 2014, 13:55

Я ведь даже не намекал на то, что бинарное дерево - элемент интерфейса.
Да, это способ хранения данных. Но у данных есть абстрактная структура, и её мне нужно отобразить.
Отобразить её можно разными способами, в том числе и с помощью ExpandableList. Но как это сделать, мне в голову пока не пришло...

Аватара пользователя
Egrace
Сообщения: 14
Зарегистрирован: 17 сен 2014, 19:00

Re: Визуальное отображение структур данных

Сообщение Egrace » 18 сен 2014, 14:48

Ладно. Если я постараюсь нарисовать дерево, каким образом можно будет сделать элементы кликабильными?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Визуальное отображение структур данных

Сообщение Foenix » 18 сен 2014, 15:13

та ты просто тему почитай относящуюся к тому уроку что и ExpandableListView - там упоминали не раз всякие библиотеки, которые строят кликабельное дерево с любым кол-вом вложенности.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Визуальное отображение структур данных

Сообщение altwin » 19 сен 2014, 15:48

Повторять очевидны вещи желания нет, в ExpandableListView визуализировать дерево даже бинарное - невозможно.

http://developer.android.com/training/c ... awing.html Но опять же лучше использовать игровые движки, поскольку нужна интерактивность, т.е. возможность потрогать, удалять \ добавлять элементы в реальном времени.
Изображение

Ответить