title: Help with mixing text and Image ind a listView
body: <p>My application is fetching data from a Xml file on a webpage. That date is placed in a listView. In the XML file there is a link to a image for every item. I need some help figuring out the easiest way to get that image from the xml file into the listView together with the text.</p>
  
  <p>In my code right now i have just placed a static image in the android:src ="" in the layout file.</p>
  
  <p>Screenshot:</p>
  
  <p><img src="https://i.stack.imgur.com/G9pGM.png" alt="enter image description here"></p>
  
  <p>xmlfile:</p>
  
  <p><a href="http://roskilde-festival.dk/typo3conf/ext/tcpageheaderobjects/xml/bandobjects_251_uk.xml" rel="nofollow noreferrer">http://roskilde-festival.dk/typo3conf/ext/tcpageheaderobjects/xml/bandobjects_251_uk.xml</a></p>
  
  <p>MainClass:</p>
  
  <pre><code>package com.bandreminder;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  
  import android.app.ListActivity;
  import android.content.Context;
  import android.net.ConnectivityManager;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.AdapterView.OnItemClickListener;
  import android.widget.ListAdapter;
  import android.widget.ListView;
  import android.widget.SimpleAdapter;
  import android.widget.Toast;
  
  public class bandR extends ListActivity {
  
      private ConnectivityManager connMgr;
  
      private android.net.NetworkInfo network_info;
      private boolean blnNetworkAccess=false;
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.listplaceholder);
  
  
  
          connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
          network_info = connMgr.getActiveNetworkInfo();
  
          if(network_info != null &amp;&amp; network_info.isConnectedOrConnecting()) {
              blnNetworkAccess = true;
          }
  
         if(blnNetworkAccess) {
  
  
          fetchData();
  
          }
          else {
              Toast.makeText(bandR.this, "No Internet connection, please enable", Toast.LENGTH_LONG).show();
          }
      }
  
      public void onResume(){
          super.onResume();
          if(network_info != null &amp;&amp; network_info.isConnectedOrConnecting()) {
              Log.w("resume", ""+network_info);
          }
  
          else {
              Toast.makeText(bandR.this, "No Internet connection, please enable", Toast.LENGTH_LONG).show();
          }
      }
  
      public void onPause(){
          super.onPause();
          blnNetworkAccess = false;
          Log.w("onPause", "test");
      }
  
  
      private void fetchData() {
  
  
  
          ArrayList&lt;HashMap&lt;String, String&gt;&gt; mylist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
          Integer numResults;
          String xml = XmlHandler.getXML();
  
          Document doc = XmlHandler.XMLfromString(xml);
  
          numResults = XmlHandler.numResults(doc);
  
  
           if((numResults &lt;= 0)){
              Toast.makeText(bandR.this, "No Bands found", Toast.LENGTH_LONG).show();  
              finish();
           }
  
          NodeList nodes = doc.getElementsByTagName("item");
  
          for (int i = 0; i &lt; nodes.getLength(); i++) {                           
              HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();    
  
              Element e = (Element)nodes.item(i);
              map.put("artistName", "Artist Name: "+ XmlHandler.getValue(e, "artistName"));
              map.put("country", "Country: " + XmlHandler.getValue(e, "country"));
  
              map.put("scene", "Scene: " + XmlHandler.getValue(e, "scene"));
              map.put("tidspunkt", "Tidspunkt: " + XmlHandler.getValue(e, "tidspunkt"));
  
  
              mylist.add(map);            
          }       
  
  
           ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main, 
                           new String[] { "artistName", "country", "scene","tidspunkt" }, 
                           new int[] { R.id.item_artistname, R.id.item_country,R.id.scene ,R.id.tidspunkt});
  
           setListAdapter(adapter);
  
  
  
  
           final ListView lv = getListView();
           lv.setTextFilterEnabled(true); 
           lv.setOnItemClickListener(new OnItemClickListener() {
              public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {              
                  @SuppressWarnings("unchecked")
                  HashMap&lt;String, String&gt; o = (HashMap&lt;String, String&gt;) lv.getItemAtPosition(position);                   
                  Toast.makeText(bandR.this, "artistName '" + o.get("artistName") + "' was clicked.", Toast.LENGTH_LONG).show(); 
  
              }
          });
      }
  
  
  
  }
  </code></pre>
  
  <p>XMLHandler Class:</p>
  
  <pre><code>package com.bandreminder;
  
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.io.StringReader;
  import java.net.URL;
  import java.net.URLConnection;
  
  import javax.xml.parsers.DocumentBuilder;
  import javax.xml.parsers.DocumentBuilderFactory;
  import javax.xml.parsers.ParserConfigurationException;
  
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import org.xml.sax.InputSource;
  import org.xml.sax.SAXException;
  
  import android.util.Log;
  
  
  public class XmlHandler{
  
      public static boolean connected;
  
  public boolean getConnected(){
  
          return connected;
  
      }
  
      public final static Document XMLfromString(String xml){
  
          Document doc = null;
  
          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
          try {
  
              DocumentBuilder db = dbf.newDocumentBuilder();
  
              InputSource is = new InputSource();
              is.setCharacterStream(new StringReader(xml));
              doc = db.parse(is); 
  
  
          } catch (ParserConfigurationException e) {
              System.out.println("XML parse error: " + e.getMessage());
              return null;
          } catch (SAXException e) {
              System.out.println("Wrong XML file structure: " + e.getMessage());
              return null;
          } catch (IOException e) {
              System.out.println("I/O exeption: " + e.getMessage());
              return null;
          }
  
          return doc;
  
      }
  
      /** Returns element value
        * @param elem element (it is XML tag)
        * @return Element value otherwise empty String
        */
       public final static String getElementValue( Node elem ) {
           Node kid = null;
           if( elem != null){
               if (elem.hasChildNodes()){
                   for( kid = elem.getFirstChild(); kid != null; kid = kid.getNextSibling() ){
                       if( kid.getNodeType() == Node.TEXT_NODE  ){
                           return kid.getNodeValue();
                       }
                   }
               }
               else
  
                   return  elem.getNodeValue();
           }
           return "";
       }
  
       public static String getXML(){
          ;
              String line = null;
              StringBuilder result = new StringBuilder();
              try {
                  // Send data
                  URL url = new URL("http://roskilde-festival.dk/typo3conf/ext/tcpageheaderobjects/xml/bandobjects_251_uk.xml");
                  URLConnection conn = url.openConnection();
                  conn.setDoOutput(true);
                  // Get the response
                  BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                  while((line = rd.readLine()) != null){
                      result.append(line);
                  }
                  //Close
                  rd.close();
              } catch (Exception e){
                  connected = false;
  
              }
  
              return result.toString();
      }
  
      public static int numResults(Document doc){     
          Node results = doc.getDocumentElement();
  
          int res = -1;
  
  
  
          try{
  
              res += results.getChildNodes().getLength();
  
  
  
  
          }catch(Exception e ){
  
              Log.w("Exception numresults", ""+e.getMessage());
              res = -1;
          }
          Log.w("numres", ""+String.valueOf(res));
          return res-1;
      }
  
      public static String getValue(Element item, String str) {       
          NodeList n = item.getElementsByTagName(str);
          Log.w("element", ""+n.item(0).getTextContent());
  
          //return XmlHandler.getElementValue(n.item(0));
          return n.item(0).getTextContent();
      }
  
  
  
  }
  </code></pre>
  
  <p>Layout:</p>
  
  <p>listplaceholder:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"&gt;    
  
      &lt;ListView
          android:id="@id/android:list"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:drawSelectorOnTop="false" /&gt;
  
      &lt;TextView
          android:id="@id/android:empty"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="No data"/&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>main layout:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:padding="7dp"
      android:id="@+id/layout"
      &gt;
  &lt;TextView  
      android:id="@+id/item_artistname"
  
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium"
      android:padding="2dp"
      android:textSize="15dp" /&gt;
  &lt;TextView  
      android:id="@+id/item_country"
      android:layout_below="@id/item_artistname"
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="2dp"
      android:textSize="13dp" /&gt;
  &lt;TextView  
      android:id="@+id/scene"
      android:layout_below="@id/item_country"
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="2dp"
      android:textSize="13dp" /&gt;
  &lt;TextView  
      android:id="@+id/tidspunkt"
      android:layout_below="@id/scene"
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="2dp"
      android:textSize="13dp" /&gt;
  
  &lt;ImageView
      android:id="@+id/img"
  
      android:layout_below="@id/item_artistname"
      android:layout_alignParentRight="true"
      android:src="@drawable/abe"
  
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"/&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>