169 похожих чатов

Как использовать групированный список из Hashmap в адаптере?

12 ответов

10 просмотров

Почитай про recyclerciew и multiple view types

Пользователь-6107d Автор вопроса

тоесть в любом случае использовать List?

Ты можешь использовать карту, но тебе тогда нужен linkedhashmap. Тогда ты сможешь ключ использовать в качестве типа вьюхи

Пользователь-6107d Автор вопроса

а откуда мне знать об ключах? когда я буду адаптер использовать, какой то плохой подход. Мапу юзать в адаптере

Дык а ты пары элементов тяни. Linkedhashmap позволит получать пары в порядке закладывания. Но лично мне такой вариант нравиться меньше всего. Я бы sealed class делал или обёртку и енамчик типов контента

Пользователь-6107d Автор вопроса

Вот я тоже думаю обертку сделать и хранить там 3 класса Header?, Element?, Footer? и чекать какой из них не null

Нее) Смотри, одно поле типа ContentType, а ты чекаешь его значения (это енам). Или сделай sealed класс - тогда нет нужды в обёртке отдельной и енаме, у тебя носитель данных будет и про тип контента говорить

Пользователь-6107d Автор вопроса

Ну этот енам я в адаптере хранить буду. А я говорю о том чтобы разные типы как пробросить в адаптер. Список разных типов классов. Надо же их обернуть во что - то)

Если делать запечатанный класс и его наследников: ты в адаптер принимаешь список общего типа, а в том списке конкретных типов наследники (HeaderContent, ItemContent, FooterContent и прочее). Далее ты чекаешь тип элемента в getItemViewType и определяет так тип. Похожее делаешь при биндинге данных - у тебя есть тип (значит знаешь, к чему кастануть), кастуешь общую ссылку к конкретной и достаешь нужные данные

Пользователь-6107d Автор вопроса

Дак я обернуть тоже самое могу в обычный класс)

Суть понял?)

Но так-то я не агитирую, тут дело вкуса

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта