Android ImageView NullPointerException

lin*_*sek 4 android image-manipulation android-widget android-layout

我有两个图像,一个红灯和一个绿灯.我有一个自定义ListView,我希望在列表项处于非活动状态时显示红灯,并在活动时显示绿灯.按下列表项时会激活该列表项.

这是我的代码

row.xml

<ImageView
    android:id="@+id/iconLight"
    android:src="@drawable/light_off"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

main.java

ImageView iconLight = (ImageView)findViewById(R.id.iconLight);
iconLight.setImageResource(R.drawable.light_on);
Run Code Online (Sandbox Code Playgroud)

我得到一个NullPointerException来执行设置图像资源的行.所以我做了一些测试,我删除了在XML文件中设置src的行,并尝试在主类中设置它.仍然是NPE.所以我尝试不改变资源,只是改变了alpha.仍然是NPE.

我不确定我做错了什么.当我在XML中指定文件时light_off.png,light_on.png它们都在res/drawable-ldpi其中,并且它们中的任何一个都可以工作.但是我试图iconLight在主文件中进行的任何更改都会导致此NPE.有任何想法吗?

And*_*ite 12

获得NPE的唯一途径......

iconLight.setImageResource(R.drawable.light_on);
Run Code Online (Sandbox Code Playgroud)

是否为iconLight为null.所以,你的findViewById失败了.在调用findViewById之前是否设置了布局?你确定 R.id.iconLight在Activity的根布局中吗?