Объекты в HashMap - переходят к адаптеру ListView - PullRequest
4 голосов
/ 26 января 2012

Можно ли передавать как строки, так и элементы рисования как объекты в одном и том же HashMap, а затем использовать эту хэш-карту для заполнения ListView через SimpleAdapter?

Я хочу это, потому что сначала получаю данные JSON, которые также содержат URL-адрес миниатюры. Затем я скачиваю этот эскиз. Соответствующий код (я думаю):

for (...) {
    ...
    InputStream is = (InputStream)content;

    Drawable image = Drawable.createFromStream(is, "src");

    // Hashmap          
    HashMap<String, Object> map = new HashMap<String, Object>();

    map.put("title", new String(jsonObject.getString("Title")));
    map.put("thumb", image);

    mylist.add(map);
}

ListAdapter adapter = new SimpleAdapter(getActivity(), mylist, R.layout.listitem,
        new String[] { "title", "thumb"},
        new int[] { R.id.title, R.id.thumb });

setListAdapter(adapter);

R.id.title = TextView и R.id.thumb = ImageView

Это работает для строки заголовка, но не для отрисовки. Этот подход просто глуп?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 26 января 2012

Вы должны создать файл макета XML для представления строки в списке и пользовательский адаптер, который раздувает строку

0 голосов
/ 26 января 2012

Насколько я могу судить по документации SimpleAdapter , ImageView s поддерживаются только для привязки с идентификатором ресурса или String, что (я имею в виду String)) должен представлять ресурс изображения или URI изображения .Это не сработает, если вы передадите его непосредственно Drawable объекту.

...