Как добавить к listView новый элемент?

Интерфейс, диалоги, темы, стили, меню
Ответить
w1zard
Сообщения: 10
Зарегистрирован: 22 дек 2014, 01:23

Как добавить к listView новый элемент?

Сообщение w1zard » 22 дек 2014, 01:35

Всем привет, вопрос следующий:
Есть listView со стандартным адаптером SimpleAdapter. Как при клике на элемент списка добавить под ним новый layout(в SimpleAdapter применялся другой)?
То есть по виду это примерно как ExpandableListView, только с одним элементом внутри.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Как добавить к listView новый элемент?

Сообщение doter.ua » 22 дек 2014, 03:07

По-твоему разработчики андроида просто так создали экспандбл лист? Лучше объясни что ты хочешь сделать, а не спрашивай "как сделать такой-то велосипед".
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Как добавить к listView новый элемент?

Сообщение Mikhail_dev » 22 дек 2014, 09:23

Добавить или открыть? Если первое, то это не ExpandableListView. Для первого варианта можете поискать библиотеку тут - https://play.google.com/store/apps/deta ... oide.repos
В материальном дизайне вроде вышел как раз такой элемент, но я не уверен что он для версий ниже 5, так что ищите то что вам надо в этой программе-коллекции библиотек.

w1zard
Сообщения: 10
Зарегистрирован: 22 дек 2014, 01:23

Re: Как добавить к listView новый элемент?

Сообщение w1zard » 22 дек 2014, 10:52

Благодарю за ответы,
doter.ua, сейчас получаю данные с сервера в формате json парсю их и вывожу в listview. В поставленной задачи стоит условие, что ExpandableListView использовать нельзя, даже при угрозе обрезания и записи в талибан. Задача, чтобы при клике на item, нижний item(следующий за тем, на который кликнули) сдвигался и туда(в образовавшуюся брешь) добавлялся другой layout с определёнными textView внутри. При этом добавляемый layout отличается от того, который использует SimpleAdapter(его менять можно).

Mikhail_dev, нужно именно добавить. Да, в materialDesign есть recycleView который подошёл бы мне, но по версии не проходит((((

PS. Mikhail_dev, огромное спасибо за ссылку! :mrgreen:

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Как добавить к listView новый элемент?

Сообщение doter.ua » 22 дек 2014, 13:58

А кастомный адаптер можно ииспользовать??
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Как добавить к listView новый элемент?

Сообщение Mikhail_dev » 22 дек 2014, 15:01

doter.ua писал(а):А кастомный адаптер можно ииспользовать??
например?

w1zard
Сообщения: 10
Зарегистрирован: 22 дек 2014, 01:23

Re: Как добавить к listView новый элемент?

Сообщение w1zard » 22 дек 2014, 16:26

doter.ua писал(а):А кастомный адаптер можно ииспользовать??
Да, ограничения касаются только ExpandableListView :cry:

w1zard
Сообщения: 10
Зарегистрирован: 22 дек 2014, 01:23

Re: Как добавить к listView новый элемент?

Сообщение w1zard » 23 дек 2014, 15:09

Стало быть разумных человеческих(предусмотренных) вариантов нет?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Как добавить к listView новый элемент?

Сообщение doter.ua » 23 дек 2014, 16:37

Можно попробовать в кастомном адаптере модифицировать rowView - контейнер элемента. Так как адаптер реагирует на изменение данных, а не на изменение его "вида" напрямую при клике нужно изменять какую-нибудь булку(bool), а при отображении данных эта булка будет управлять блоком кода, который изменяет rowView. Например можно накидать туда элементов addChild. Место для данных можно заготовить заранее для каждого из элементов, просто оно будет пустым и использоваться в зависимости от булки.
P.S. В моем варианте rowView - элемент, который создается LayoutInflater-ом.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Как добавить к listView новый элемент?

Сообщение KamiSempai » 23 дек 2014, 17:10

w1zard писал(а):Да, в materialDesign есть recycleView который подошёл бы мне, но по версии не проходит((((
Он же в Support Library, там минимальная версия API 7.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

finberg
Сообщения: 51
Зарегистрирован: 11 мар 2013, 14:20

Re: Как добавить к listView новый элемент?

Сообщение finberg » 24 дек 2014, 08:36

Может в разметку ячейки добавит элемент ViewStub? Погуглите, может подойдёт вам. В адаптере делать ViewStub видимым если необходимо.

w1zard
Сообщения: 10
Зарегистрирован: 22 дек 2014, 01:23

Re: Как добавить к listView новый элемент?

Сообщение w1zard » 19 янв 2015, 00:41

Камрады, всем спасибо) в итоге на viewstub остановился

Ответить