Попытайтесь сосредоточиться на общих «что можно и чего нельзя» в отношении списков, например является добавление и удаление 30 элементов из списка 200 лучше, чем очистка и заселение? Или любые другие советы в этой области - я действительно не могу попробовать на моем телефоне, чтобы быстро для этого: -)
Есть ли способ вычислить накладные расходы памяти / вычислительную мощность операций со списком. Фон выглядит следующим образом:
У меня есть представление списка на странице, например, на странице 3 вкладки внизу (Все, Поиск, Недавние). Теперь, если вы щелкнете вкладку, список должен показать вам нужные элементы.
Сейчас есть два разных подхода, один из них:
Используйте один ListAdapter, отфильтруйте элементы соответственно
- Если вы нажмете «Все», просто поместите в него все элементы из БД
- Если вы нажмете кнопку «Недавние», просто поместите элементы, соответствующие требованиям
Используйте два (три ..) ListAdapter , по одному для каждой категории
- Если вы нажмете «Все», установите для адаптера () списка соответствующий
- Если вы нажмете «Недавние», установите для параметра «Адаптер» () соответствующий
. Речь идет о списке из 200 элементов, которые представляют собой сложные объекты, созданные из базы данных. Когда, например, при поиске элемента вы вводите часть заголовка, и в списке должны отображаться только соответствующие элементы. Элементы не будут воссозданы, я бы запросил только идентификаторы и использовал буферизованные элементы (см. Позже структуру данных).
Я также не уверен в том, «где фильтровать», я мог бы сделать это в базе данных (выберите, где заголовок LIKE abc), а затем ЛИБО:
Опять же, чтобы прояснить структуру данных приложения:
Я надеюсь, что вы уловили мой дрейф, я пытаюсь почувствовать «дорогие» операции.Возможно, в качестве последнего побуждения к ответу я запишу несколько случаев, и вы сможете высказать свое мнение о том, насколько они дороги:
Спасибо за любые отзывы или советы по недопустимым действиям. Особенно возможные проблемы с триггером событий при работе с видимыми элементами списка вместо того, чтобы делать это сначала «в фоновом режиме», а затем устанавливать новый ListAdapter