Как мне отредактировать Endless адаптер таким образом, чтобы загрузка прекращалась, если нет данных для загрузки? - PullRequest
0 голосов
/ 16 января 2012

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

Как мне это остановить?Как я могу дать бесконечному адаптеру знать, что у меня нет данных?

Кроме того, я хотел бы настроить адаптер, чтобы он мог использовать несколько списков.Является ли это возможным?Под несколькими списками я имею в виду список, встроенный в другой список.Если да, есть ли пример или какие-либо идеи относительно того, как это сделать?

Ответы [ 2 ]

6 голосов
/ 16 января 2012

Как заставить бесконечный адаптер узнать, что у меня нет данных?

Цитировать Документация :

Ваш подкласс EndlessAdapter также должен реализовать cacheInBackground().Этот метод будет вызываться из фонового потока, и ему нужно загрузить больше данных, которые в конечном итоге будут добавлены в ListAdapter, который вы использовали в конструкторе.Хотя демонстрационное приложение просто спит в течение 10 секунд, реальное приложение может выполнить вызов веб-службы или иным образом загрузить дополнительные данные.

Этот метод возвращает значение boolean, которое должно быть true, если имеетсядополнительные данные еще не получены, false в противном случае.

Поскольку этот метод вызывается в фоновом потоке, вам не нужно создавать свой собственный поток.Однако, в то же время, не пытайтесь обновить пользовательский интерфейс напрямую.

Если вы ожидали, что сможете получить данные, но не смогли (например, ошибка сети), это нормально.Однако затем вы должны вернуть false, указывая, что у вас больше нет данных.


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

Нет.Android не поддерживает понятие списков внутри списков.Вы можете взглянуть на мой MergeAdapter (если вы действительно хотите сказать, что хотите объединить несколько списков вместе) или на Android ExpandableListView (если ваши списки в списках действительно являются чем-то вродемелкая древовидная структура).

1 голос
/ 16 января 2012

Можно использовать разные данные для вашего собственного адаптера, эти данные могут быть любого типа, такие как ArrayList<HashMap/HashSet<?,List<?>>> это ваше личное дело, как вы будете использовать его в своем методе getView (...). Вы можете реализовать службу опроса, которая будет обновлять ваш адаптер с данными соответственно и setAdapter () после. Если нет данных просто простаивает ... надеюсь, что это поможет abit.

...