Реализация CursorAdapter
отличается от подклассов обычных адаптеров, таких как BaseAdapter
, вам не нужно переопределять getView()
, getCount()
, getItemId()
, потому что эту информацию можно получить из самого курсора.
Учитывая Cursor
, вам нужно переопределить только два метода для создания CursorAdapter
подкласса:
bindView()
: для данного представления обновите его, чтобы отобразить данные в указанном курсоре.
newView()
: Это вызывается для создания нового представления, которое входит в список.
CursorAdapter
позаботится о повторном использовании (в отличие от getView()
обычного Adapter
). Он не вызывает newView()
каждый раз, когда ему нужен новый ряд. Если у него уже есть View
(не null
), он будет напрямую вызывать bindView()
, таким образом, созданный вид используется повторно. Разделив создание и заполнение каждого представления на эти два метода, CursorAdapter
достигает повторного использования представления, так как в обычных адаптерах обе эти вещи выполняются в методе getView()
.