Использование MergeAdapter; ищет способ определения типа данных элемента списка в методе ListActivity onListItemClicked - PullRequest
3 голосов
/ 10 ноября 2010

Я использую MergeAdapter для создания секционированного списка, в котором каждый раздел списка содержит различный тип базовых данных. Все работает в значительной степени, как ожидалось. Однако метод onAistItemClicked в ListActivity кажется более сложным, чем он должен быть, когда речь идет об определении типа данных, лежащих в основе выбранного элемента списка. Это так, потому что я не могу найти хороший способ определить тип объекта, который лежит в основе выбранного элемента, если я не сохраню отдельную карту позиции списка в типе объекта. Я надеялся, что смогу использовать метод getItemViewType для возврата одного и того же типа для похожих элементов, но если эти элементы находятся в отдельных разделах ListView, MergeAdapter возвращает значение типа, которое смещено на местоположение раздела, то есть Тип элемента в другом разделе списка получает другое значение типа. Я чувствую, что упускаю что-то очевидное ... Любая помощь, которую кто-либо может оказать, будет принята с благодарностью.

1 Ответ

9 голосов
/ 10 ноября 2010

Я использую MergeAdapter для создания секционированного списка, где каждый раздел списка содержит различный тип базовых данных.

Как MergeAdapter заметки на странице проекта: «Если у вас есть вопросы, касающиеся использования этого кода, присоединяйтесь и задавайте их в cw-android Группе Google ».

К счастью для вас, я видел вашивопрос здесь.

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

Вызовите getItem() на MergeAdapter, чтобы получить реальный объект, затем используйте instanceof или используйте интерфейсы или что-то еще, чтобы найти подходящий тип для использования на самом объекте.

...