2014-01-26 4 views
1

Теперь я использовал ListView и ArrayAdapter для отображения данных из sqlite. Моя старая реализация извлекается из db и устанавливается в arrayAdapter. Затем установите адаптер в listview.Какова цель адаптера курсора?

Но теперь, чтобы перейти к эффективному адаптеру. Что делать, если sqlite имеет тысячи записей? Я знал, что мне нужно получить первые 20 записей, а затем получить следующие предметы на основе прокрутки. Интересно Могу ли я получить эту реализацию с помощью адаптера курсора? Или я могу узнать лучшее решение для этой ситуации.

ответ

0

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

просто введите другой слой между базой данных и представлением.

1

Прежде всего, основная причина, по которой я использую CursorAdapter, заключается в том, что содержимое будет автоматически изменяться, если данные в sqlite будут изменены. Мне не нужно учитывать обновленный интерфейс, если что-то изменится ниже.

Во-вторых, как query sqlite, так и listview уже сделали некоторую оптимизацию, которую вы хотите. Sqlite не будет предоставлять все данные в момент выполнения запроса по умолчанию. Он использует окно слайда, чтобы постепенно давать результат запроса. И listview также не рисует весь элемент сразу, он рисует элементы по мере прокрутки пользователя.

Надеется, что это помогает, хотя и не точно ответить на ваш вопрос

1

При наличии тысячи записей в базе данных/ответ сервера или все, что вы Извлечение информации из, лучшая практика, чтобы сделать использование «Ленивая загрузка «техника, в основном то, что она делает, - показывая куски наборов данных для пользователя, например, 50 элементов в то время, поэтому нет необходимости загружать 950 элементов, которые могут даже не использоваться, этот метод значительно улучшает реакцию приложения и ваша память тоже, теперь, как вы ее реализуете, действительно зависит от вас, есть класс BaseAdapter, чтобы сделать это самостоятельно, или хорошая реализация адаптеров курсора/массива также может сделать трюк.

Важно отметить, что курсоры имеют одно преимущество:

Cursor позволяет Android более эффективно управлять ресурсами путем извлечения и отпускание строк и столбцов значений по требованию.

Надеюсь, это поможет!

С уважением!

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