所以我有这个listview和我为它制作的自定义XML文件。
在文件中,有一个没有源设置且具有固定ID的图像。
我想将此图像源更改为drawable文件夹中的一个资源。
这是我的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>
这是我到目前为止所尝试的,它崩溃了:
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);
答案 0 :(得分:1)
ImageView img;
img = (ImageView) findViewById(R.id.listImage);
这意味着您指的是布局中存在的对象,您可以将其用于Activity的 setContentView()。但是您的ImageView不存在于该布局中。
在这里,您尝试使用ListView引用它。显然你得到空指针异常。
您必须使用自定义适配器以及。尝试下面的链接。