2009-09-14 2 views
0

Я хотел бы создать пользовательский CursorAdapter, который берет курсор и предоставляет дополнительную итоговую строку в конце. Таким образом, при использовании курсора с 4 строками ListView будет содержать 5 строк, 4 строки из курсора плюс пятую строку, содержащую некоторые итоги из предыдущих 4 строк. Из документации я не понимаю, какие методы следует переопределять, чтобы это сделать. Или, может быть, есть лучший способ сделать это.Пользовательский адаптер в Android

ответ

2

Ответ г-на Муноза - это хорошо. Другой вариант, вместо изменения Cursor, заключается в использовании addFooterView(), чтобы добавить еще одну строку в ваш список, которая не поступает из ваших данных Cursor.

+0

Значит, мне нужен наблюдатель данных на курсоре, который вызовет addFooterView(), когда курсор изменится? Будет ли это выглядеть без проблем, или пользователь увидит 4 строки, а затем увидит добавленную пятую строку? – Aaron

+0

Вы должны добавить нижний колонтитул перед добавлением адаптера списка. Вы обновляете представление нижнего колонтитула новыми данными всякий раз, когда захотите, например, от наблюдателя данных. – CommonsWare

+0

Мне нравится это решение немного лучше, чем другое, потому что я мог бы использовать другой макет для просмотра нижнего колонтитула. – Aaron

1

Вы можете легко выполнить это, используя класс MergeCursor, передать исходный курсор в качестве первого элемента в массиве конструктору и создать новый простой подкласс AbstractCursor, который возвращает только один элемент, который вы добавляете, и передайте его как второй элемент для массива в конструкторе. Тогда все должно работать автоматически для вас.

Смежные вопросы