rel-s
rel-s

Reputation: 6138

Android setting images inside listView

So i have this listview with my custom XML file that i made for it.

In the file, there is an image with no source set that has a fixed id.

I want to change this image source to one of my resources in drawable folder.

Here is my XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView 
 android:id="@+id/listImage"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:contentDescription="protection image"
 android:layout_marginTop="10dp"
/>
<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="10dp"
>
<TextView android:id="@+id/text1" 
android:textSize="20dp"  
android:textStyle="bold"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<TextView android:id="@+id/text2"
android:textSize="12dp" 
android:layout_marginTop="5dp"
android:layout_width="wrap_content" 
android:layout_height="fill_parent"/>
</LinearLayout>
</LinearLayout>

</LinearLayout>

This is what i have tried so far, and it crashes:

        adapter=new SimpleAdapter(this, listItems, R.layout.custom_row_view,new String[]{"name", "current"},  new int[] {R.id.text1, R.id.text2});
    ImageView img;
    img = (ImageView) findViewById(R.id.listImage);
    Drawable d = getResources().getDrawable(R.drawable.opened);
    img.setImageDrawable(d);
    setListAdapter(adapter);

Upvotes: 1

Views: 4335

Answers (1)

Andro Selva
Andro Selva

Reputation: 54322

ImageView img;
    img = (ImageView) findViewById(R.id.listImage);

This means that you are referring to a object with is present in the layout which you could have used for your Activity's setContentView().But your ImageView is not present in that layout.

And here you are trying to refer this with a ListView. So obviously you are getting the null pointer exception.

You have to make use of a Custom Adapter as well as. Try the one from the below link.

http://www.ezzylearning.com/tutorial.aspx?tid=1763429&q=customizing-android-listview-items-with-custom-arrayadapter

http://www.mkyong.com/android/android-listview-example/

Upvotes: 1

Related Questions