ListAdapter и установить изображение из Интернета - PullRequest
1 голос
/ 16 декабря 2011

Я пытаюсь создать список продуктов с изображениями каждого продукта в виде списка. Контент взят из Интернета.

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

Я был бы очень признателен за любую помощь. Вот мой код для активности:

NodeList nodes = doc.getElementsByTagName("result");
    // Drawable d = null;
    for (int i = 0; i < nodes.getLength(); i++) {
        // HashMap<String, String> map = new HashMap<String, String>();
        HashMap<String, Object> map = new HashMap<String, Object>();



        Element e = (Element) nodes.item(i);

        map.put("id", "ID: " + XMLfunctions.getValue(e, "id"));
        map.put("name", "Name: " + XMLfunctions.getValue(e, "name"));

        Drawable d = dManager
        .fetchDrawable("http://MY_WEBSITE/images/"
                + XMLfunctions.getValue(e, "image"));

        map.put("image", d);
        map.put("imageUrl", XMLfunctions.getValue(e, "image"));
        mylist.add(map);
    }

    ListAdapter adapter = new SimpleAdapter(this, mylist,
            R.layout.products, new String[] { "image", "name", "id", },
            new int[] { R.id.item_image, R.id.item_title,
                    R.id.item_subtitle });

    setListAdapter(adapter);

    final ListView lv = getListView();
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            @SuppressWarnings("unchecked")
            HashMap<String, Object> o = (HashMap<String, Object>) lv
                    .getItemAtPosition(position);
             //Toast.makeText(productsActivity.this, "ID '" + o.get("id") +
             //"' was clicked.", Toast.LENGTH_LONG).show();
            Drawable d = dManager
                    .fetchDrawable("http://MY_WEBSITE/images/"
                            + o.get("imageUrl"));
            ImageView imgView = (ImageView) view
                    .findViewById(R.id.item_image);
            o.put("image", d);
            imgView.setImageDrawable(d);
        }
    });

1 Ответ

0 голосов
/ 16 декабря 2011

Лучший способ отобразить изображения в ListView при загрузке их в фоновом потоке - это fedors LazyList

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...