ОК, пытаюсь получить изображения с моей SD-карты для показа в активности ListView
.
Я читаю много подсказок, но мне не хватает важного куска. Я хотел бы увидеть короткий исходный код, который иллюстрирует это, еще ничего не нашел.
Из моих исследований звучит так, будто bindview()
вызывается при выполнении listview.setadapter(SimpleCursorAdapter adapter)
. В документации говорится, что setImageView
вызывается bindview
, если ViewBinder
не может обработать ImageView
.
Вы указываете поле в массиве FROM
, id
TextView
в массиве TO
, Cursor
и группу представлений с помощью TextView
. Затем установите адаптер на ListView
и вуаля, это происходит.
Я думаю, что последовательность вызова тогда:
listView.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setTextView
Bindview должен определить, что представление имеет тип TextView, determine that it can bind it, passes the
TextView and text value from the cursor and
setTextView` делает свое дело.
Итак, это делает вызов для ImageView
очень похожим, верно?
listViw.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setImageView
Итак, когда bindView
сталкивается с объектом типа ImageView
, что он делает? Есть ли реализация по умолчанию, как в setTextView
? Я предполагаю, что это будет трудно сделать, изображения сильно различаются. Текст - это текст, но изображения имеют форматы, размеры, глубину, масштаб, расположение и т. Д. И т. Д. Строка, переданная в setTextView
, представляет собой текст, полезную нагрузку. На изображении строка (вероятно) - имя файла, только начальная точка изображения.
Я думаю, мне нужно собрать свой адаптер с именем столбца базы данных, которое содержит имя файла в FROM
. Массив TO
будет иметь только идентификатор ImageView
в моем макете. Я думаю, что могу использовать видоискатель по умолчанию bindview () , но мне придется переопределить setImageView()
, чтобы взять ожидаемую строку (имя файла), и построить строки загрузки изображения, чтобы найти это имя изображения в ожидаемом путь к приложению.
Так что будет (может быть):
listView.setAdapter(MyOwnSimpleCursorAdapter myOwnAdapter)->myOwnAdapter.super.bindView()->myOwnAdapter.setImageView()
Это звучит правильно? Если кто-нибудь сможет заполнить пропущенные пробелы и / или предоставить какой-нибудь рабочий исходный код, это очень поможет. Кстати, я написал код для этого, но он не работает. Это может быть очень простой ошибкой, и она не хочет останавливать этот поток, если это выполнимо. Я думаю, мне просто нужно немного подтолкнуть в правильном направлении.