9

I have problem with my custom ListView.

SimpleAdapter adapter = new SimpleAdapter(this,
  this.dh.selectAll(),
  R.layout.custom_row_view,
  new String[] {"Icon","Chance","TeamID"},
  new int[] {R.id.text1,R.id.text2, R.id.text3});
  setListAdapter(adapter);

This is my simple adapter. I want put into them icons, can I do that?

5
  • 1
    Seems that you havent googled out before posting question here in SO or Google. Commented Jun 10, 2011 at 11:47
  • yes you can but you should be more specific ... how do you wana provide icon ? by Uri ? resource id ? Commented Jun 10, 2011 at 11:50
  • @Kartik we actualy don't know if he wants to use lazy image loading Commented Jun 10, 2011 at 11:53
  • @Selvin ,thx for answers, I have folder (drawable/flags/Albania.png) with many icons and I want put icons into my simpleadapter Commented Jun 10, 2011 at 12:17
  • 1
    @Kartik - the question is not a duplicate, even if he can use the same answer. Commented Jun 10, 2011 at 12:20

1 Answer 1

21

yes you can ...

MyList.java:

package com.TestActivity;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;


public class MyList extends ListActivity {

    final static ArrayList<HashMap<String, ?>> data = new ArrayList<HashMap<String, ?>>();

    static{
        HashMap<String, Object> row  = new HashMap<String, Object>();
        row.put("Icon", R.drawable.flags_albania);
        row.put("Chance", "65%");
        row.put("TeamID", "Albania");
        data.add(row);
        row  = new HashMap<String, Object>();
        row.put("Icon", R.drawable.flags_rpa);
        row.put("Chance", "55%");
        row.put("TeamID", "RPA");
        data.add(row);
        row  = new HashMap<String, Object>();
        row.put("Icon", R.drawable.flags_polska);
        row.put("Chance", "100%");
        row.put("TeamID", "Polska :)");
        data.add(row);
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SimpleAdapter adapter = new SimpleAdapter(this,
                data,
                  R.layout.row,
                  new String[] {"Icon","Chance","TeamID"},
                  new int[] { R.id.imageView1, R.id.textView1,R.id.textView2});
       setListAdapter(adapter);

    }
}

res/layout/row.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/icon" android:id="@+id/imageView1"/>
    <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
    <TextView android:text="TextView" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>

put pngs with flags to res/drawable-hdpi/

flags_albania.png flags_rpa.png flags_polska.png

and you will get smthing like this:

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.