MergeAdapter - показать элементы в порядку добавления
MergeAdapter - показать элементы в порядку добавления
Я использую MergeAdapter для listview. Он отображает сначала элементы первого добавленного адаптера потом второго и т.д. Но мне нужно отображать элементы в порядку добавления. Подскажите пожалуйста как это сделать.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: MergeAdapter - показать элементы в порядку добавления
В данном случае, ни как. Используйте один общий список для всех элементов и один общий адаптер для них.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: MergeAdapter - показать элементы в порядку добавления
То есть нельзя поместить все aдаптеры в объект типа Queue(http://developer.android.com/reference/ ... Queue.html) и выводить оттуда???KamiSempai писал(а):В данном случае, ни как. Используйте один общий список для всех элементов и один общий адаптер для них.
Re: MergeAdapter - показать элементы в порядку добавления
Но мне нужно несколько вариантов отображения данных в listView, в одном случае просто сообщение, в другом картинка, сообщение и кнопки, в третьем еще что-то. Сделать универсальный адаптер и править кучу кода программно?KamiSempai писал(а):В данном случае, ни как. Используйте один общий список для всех элементов и один общий адаптер для них.
А если наследоваться от MergeAdapter'a и переопределить getView()?
Re: MergeAdapter - показать элементы в порядку добавления
Не совсем понял что вы имеете в виду.altwin писал(а):То есть нельзя поместить все aдаптеры в объект типа Queue(http://developer.android.com/reference/ ... Queue.html) и выводить оттуда???KamiSempai писал(а):В данном случае, ни как. Используйте один общий список для всех элементов и один общий адаптер для них.
MergeAdapter и так поочередно выводит элементы каждого адаптера.
Re: MergeAdapter - показать элементы в порядку добавления
Queue или по русски очередь как раз не просто выводит поочередно, а как раз в порядке добавления методом FiFo(first in - first out). Т.е. первый добавленный элемент и выводится первым.(но это я сужу исходя из стандартной реализацией, не уверен, что в Андроид именно так, хотя очередь и в Африке должна быть очередью.) Соответственно подобным способом можно менять порядок отображения используя различные очереди/стек или другие структуры.(на сколько я понял вопрос изначально вы хотели именно изменить порядок вывода)vizort писал(а):Не совсем понял что вы имеете в виду.altwin писал(а):То есть нельзя поместить все aдаптеры в объект типа Queue(http://developer.android.com/reference/ ... Queue.html) и выводить оттуда???KamiSempai писал(а):В данном случае, ни как. Используйте один общий список для всех элементов и один общий адаптер для них.
MergeAdapter и так поочередно выводит элементы каждого адаптера.
Последний раз редактировалось altwin 16 дек 2013, 21:43, всего редактировалось 1 раз.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: MergeAdapter - показать элементы в порядку добавления
Не понимаю к чему все это? Человек, фактически, просит реализовать сортировку для не связанных между собой списков. Решение тут одно, поместить все в один список.altwin писал(а):То есть нельзя поместить все aдаптеры в объект типа Queue(http://developer.android.com/reference/ ... Queue.html) и выводить оттуда???
Посмотрите в исходный код MergeAdapter'a, он очень удачно использует getItemViewType.vizort писал(а):Но мне нужно несколько вариантов отображения данных в listView, в одном случае просто сообщение, в другом картинка, сообщение и кнопки, в третьем еще что-то. Сделать универсальный адаптер и править кучу кода программно?
А если наследоваться от MergeAdapter'a и переопределить getView()?
Не все знают но у адаптера есть следующие методы:
getViewTypeCount() - возвращает количество разных строк используемых в списке.
getItemViewType(int position) - и собственно сам тип для указанной строки.
Если вы правильно переопределите эти методы, то ListView сам будет знать в какой строке что находится и будет подставлять нужный convertView для переиспользования в getView. После чего останется только самому узнать текущий тип в коде getView, при помощи того-же getItemViewType и действовать по обстоятельствам.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: MergeAdapter - показать элементы в порядку добавления
видимо я изначально не понял вопроса.KamiSempai писал(а):Не понимаю к чему все это? Человек, фактически, просит реализовать сортировку для не связанных между собой списков. Решение тут одно, поместить все в один список.altwin писал(а):То есть нельзя поместить все aдаптеры в объект типа Queue(http://developer.android.com/reference/ ... Queue.html) и выводить оттуда???vizort писал(а):.