Заполнение списка изображениями - viewbinder или customcursoradapter? Как?

Я пытаюсь заполнить список изображениями, URI которых возвращается из курсора.

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

Мой адаптер имеет следующее:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
        R.layout.albumitem, albumCursor, displayFields, displayViews);


String[] displayFields = new String[] { AudioColumns.ALBUM,
        AudioColumns.ARTIST, AlbumColumns.NUMBER_OF_SONGS };

int[] displayViews = new int[] { R.id.albumTitle, R.id.artistTitle,
        R.id.totalSongs};

Но я также хотел бы добавить изображение в R.id.albumView.

Я могу получить изображение в обычном режиме (вне адаптера), извлекая AlbumColumns.ALBUM_ID из курсора, а затем используя следующий код:

currentAlbumId = idList.get(currentSongIndex);
currentAlbumIdLong = Integer.parseInt(currentAlbumId);
artworkUri = Uri.parse("content://media/external/audio/albumart");
currentSongUri = ContentUris.withAppendedId(artworkUri, currentAlbumIdLong);
albumArt.setImageURI(currentSongUri);

Моя проблема в том, что я понятия не имею, как выполнить аналогичную задачу внутри адаптера. В любом случае, я думаю, лучше всего использовать viewBinder. Может ли кто-нибудь показать мне, как это реализовать?

Спасибо за помощь.

--Редактировать--

Два отличных ответа. Спасибо вам обоим.


person Community    schedule 04.06.2012    source источник


Ответы (2)


Вы можете использовать собственный CursorAdpater. Передайте необходимые аргументы конструктору класса Custom. В newView раздуйте макет, а в bindView установите значения. См. http://blog.cluepusher.dk/2009/11/16/creating-a-custom-cursoradapter-for-android/

person user936414    schedule 04.06.2012
comment
Спасибо за Ваш ответ. Не могли бы вы подробнее рассказать о конструкторе? Я не знаю, какая часть этого примера является конструктором. - person ; 04.06.2012
comment
Вместо адаптера SimpleCursorAdapter = new SimpleCursorAdapter(this, R.layout.albumitem, AlbumCursor, displayFields, displayViews); дать адаптер CustomCursorAdpater = новый CustomCursorAdapter (этот, альбомный курсор, displayFields, displayViews); - person user936414; 04.06.2012
comment
Спасибо. Мне придется поиграть с этим, мое понимание на данный момент весьма ограничено. - person ; 04.06.2012

person    schedule
comment
Спасибо, Заз Гми. Нужно ли мне модифицировать что-либо из этого, чтобы включить текстовые представления, или этот адаптер справляется с ними благодаря расширению курсора? - person ; 04.06.2012
comment
изменить макет. и getviews в bindView. - person Zaz Gmy; 04.06.2012